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都可以解决问题