import socket
#制定socket连接所用的ip地址和端口号
host = '127.0.0.1'
port = 6666
#创建一个套接字(服务端)
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定要监听的端口
server.bind((host,port))
#开始监听,表示可以使用10个链接排队
server.listen(10)
print("waiting for client connect!")
#等待链接
clnt_sock,addr=server.accept()
print("connected. The addr is: ",addr," The clnt_sock is: ",clnt_sock)
while True:
data=clnt_sock.recv(1024) # 接收数据
if not data:
print("disconnect!")
clnt_sock.close()
break
print("client: "+ data.decode("utf-8")) # 打印收到的的数据
msg = input("server: ") # 回复信息
clnt_sock.send(msg.encode("utf-8"))
server.close()
import socket
#指定socket连接所用的ip地址和端口号
host='127.0.0.1'
port=6666
#声明socket类型,同时生成链接对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#建立一个链接,连接到本地的6666端口
client.connect((host,port))
while True:
msg = input('input:')
if msg == 'exit':
break
client.send(msg.encode("utf-8")) #向服务端发送信息
recive=client.recv(1024)
recive=recive.decode("utf-8")
print("server: "+ recive)
else:
client.close()
函数 | 描述 |
---|---|
bind() | 绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。 |
listen() | 开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。 |
accept() | 被动接受TCP客户端连接,(阻塞式)等待连接的到来 |
connect() | 主动初始化TCP服务器连接,。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。 |
recv() | 接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。flag提供有关消息的其他信息,通常可以忽略。 |
send() | 发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。 |
close() | 关闭套接字 |
原文:https://www.cnblogs.com/guoyuhuan/p/12008400.html