Python socket 编程学习

Server.py
import socket
HOST = ‘daring.cwi.nl
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST ,PORT ))
s.listen(1)
conn,addr = s.accept()
print(‘Connected by’,addr)
while 1:
data = conn.recv(1024)
if not data:break
conn.sendall(data)
conn.close()

Client.py
import socket
HOST=‘127.0.0.1’
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.sendall(‘Hello,world’)
data = s.recv(1024)
s.close()
print(‘Received’,repr(data))

报错1 :
s.bind((HOST ,PORT ))
socket.gaierror: [Errno 11001] getaddrinfo failed
解决:将HOST = ‘daring.cwi.nl’ 改为HOST = ‘127.0.0.1’

报错2: s.sendall(‘Hello,world’)
TypeError: a bytes-like object is required, not ‘str’
解决:s.sendall(‘Hello,world’)
换成s.sendall(‘Hello,world’.encode(‘UTF-8’))

遗留问题:server.py 启动后,应该要可以接收多个client发送的请求,但是启动第二个client.py的时候就报无法连接了 此涉及到多线程 待解决后更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值