基于c++的socket编程可以看我以前博客的socket编程系列,地址
这里就简单介绍继续python的socket编程
编写tcp时一般会用到的socket模块,其方法包括:
connect(address):连接远程计算机
send(bytes[,flags]):发送数据
recv(bufsize[,flags]):接收数据
bind(address):绑定地址
listen(backlog):开始监听,等待客户端连接
accept():响应客户端的一个请求,接受一个连接
server.py
import socket # 导入 socket 模块
import sys
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建 socket 对象
host = "127.0.0.1"
port = 12345 # 设置端口
s.bind((host, port)) # 绑定端口
print("listening at port:",port)
s.listen(1)
conn,addr = s.accept()
i = 5
while True:
print("waiting for connection...")
print("Connect by:",addr)
i = i - 1
while i == 0 :
print("等待5次连接失败!")
sys.exit()
while True:
data = conn.recv(1024)
data = data.decode()
if not data:
break
print("recv message:",data)
datasend = input(">")
conn.sendall(datasend.encode())
if(data=="bye"):
conn.close()
s.close()
client.py
import socket,sys
HOST = "127.0.0.1"
PORT = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
while True:
datasend = input(">")
if not datasend:
break
s.sendall(datasend.encode())
datarecv = s.recv(1024)
if not datarecv:
break
print("recv data:",datarecv.decode())
s.close()