socket网络通信

socket通信一定有两个端,服务器端和客户端。

服务器端server.py
import socket

servers = socket.socket()		# 默认是TCP协议
servers.bind(("127.0.0.1", 8888))
servers.listen(5)
# sock就是客户端进行首发数据的通道, address就是客户端ip
sock, address= servers.accept()		# accept是用来阻塞的,一直在监听客户端的连接
recv_data = sock.recv(1024)
send_data = '来了老弟' + recv_data.decode()
sock.send(send_data.encode())

sock.close()
servers.close()
  • 导包
  • 创建服务器套接字
  • 绑定服务器IP和端口号
  • 设置允许有多少个客户端连接
  • 监听有没有客户端来连接服务器,如果有客户端连接,返回两个参数
  • 接收客户端发过来的数据
  • 发送响应
  • 关闭连接
客户端client.py
import socket

client = socket.socket()
client.connect(("127.0.0.1", 8888))
data = input(">>") 		# 自己输入发送的信息
client.send(data.encode())
recv_data = client.recv(1024)
print(recv_data)
client.close()
  • 创建一个socket套接字
  • 连接服务器
  • 输入信息
  • 发送信息给服务器
  • 接收服务器返回的信息
  • 关闭连接
terminal1: python server.py
terminal2: python client.py

termina2: >> 来了老哥
来了老弟,来了老哥
不断地接收数据!客户端发送的是空数据就断开链接
import sockey

server.py >>

servers = socket.socket()		# 默认是TCP协议
servers.bind(("127.0.0.1", 8888))
servers.listen(5)
# 不断接收
while True:
	sock, address= servers.accept()		
	recv_data = sock.recv(1024)
    # 如果接收到一个空数据就关闭
        if not recv_data:
        break
	send_data = '来了老弟,' + recv_data.decode()
	sock.send(send_data.encode())

sock.close()
servers.close()

client.py >>

client = socket.socket()
client.connect(("127.0.0.1", 8888))

while True:
        data = input(">>") 	
    # 如果客户端发送的是空数据,断开链接
        if not data:
        break
        
	client.send(data.encode())
	recv_data = client.recv(1024)
	print(recv_data)
client.close()
posted @ 2020-11-10 18:05  Morpheus1024  阅读(84)  评论(0编辑  收藏  举报