socket 服务器代码
# -*- coding: utf-8 -*-
from socket import * myHost = '' #''说明所有IP都可以连接 myPort = 50007 #设置一个端口 socketobj = socket(AF_INET,SOCK_STREAM) #创建TCP对象 socketobj.bind((myHost,myPort)) #绑定端口 socketobj.listen(5) #允许5个请求连接 while True: connection,address = socketobj.accept() #接受来自客户端的数据 print('Sever connect by',address) while True: data = connection.recv(1024) #每次读取最多1024字节 if not data: break connection.send(b'Echo'+data) #发送数据给客户端 connection.close()
socket 客户端代码
# -*- coding: utf-8 -*-
from socket import * serverHost = 'localhost' #设置本地连接 serverPort = 50007 #连接端口 while True: messages = [input('输入').encode()] #输入信息,并设置编码, 可设置b''或者str.encode() socketobj = socket(AF_INET, SOCK_STREAM) #创建TCP对象 socketobj.connect((serverHost, serverPort)) #连接端口 for line in messages: socketobj.send(line) data = socketobj.recv(1024) #从服务器接受信息,最多1024字节 print('Client received:', data.decode()) #解码打印信息,str.decode() socketobj.close()
改变字节的编译格式, 可使用b''或者 bytes.decode()和 str.encode()方法,或者使用模块pickle,struct都可以解决问题