Socket网络编程
计算机之间进行连接通信的一套程序接口,相当于在发送端和接收端建立通信管道。
编写TCP使用Socket模块,方法包括:
- connect: 连接远程计算机地址
- send(bytes[,flag]):发送数据
- recv(bufsize[,flags]):接收数据
- bind(address):绑定地址
- listen(backlog):开始监听,backlog指定连接队列最大长度
- accept():响应客户端请求,接收连接
# server
# coding: utf-8
import socket
HOST = "127.0.0.1"
PORT = 6666
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
print("Listening at port 666")
conn, addr = s.accept()
print("conn address", addr)
while True:
data = conn.recv(1024)
data = data.decode()
if not data:
break
print("Received message:", data)
conn.sendall("noting".encode())
conn.close()
s.close()
# client
# coding: utf-8
import socket, sys
HOST = "127.0.0.1"
PORT = 6666
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((HOST, PORT))
except Exception as e:
print("server not found")
sys.exit()
while True:
c = input("say")
s.sendall(c.encode())
data = s.recv(1024)
data = data.decode()
print(data)
if c.lower() == "再见":
break
s.close()