创建TCP/IP套接字
tcpSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
创建UDP/IP套接字
udpSocket = socket.socket(socket.AF_INFT,socket.SOCK_DGRAM
常用套接字对象方法
服务器套接字方法
bind(),将地址绑定到套接字上
listen(),设置并启动TCP监听器
accept(),被动接受TCP客户端连接,一直等待直到连接到达
客户端套接字方法
connect(),主动发起TCP服务器连接
connect_ex(),connect的扩展版本,会以错误码的形式返回问题
普通套接字方法
recv(),接受TCP消息
recv_into(),接受TCP消息到指定的缓冲区
send(),发送TCP消息
sendall(),完整地发送TCP消息
recvfrom(),接受UDP消息
sendto(),发送UDP消息
创建TCP/IP服务 客户端
from socket import*
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST,PORT)
tcpSerSock = socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print("waiting for connection...")
tcpCliSock,addr = tcpSerSock.accept()
print("...connected from :",addr)
while True:
data = tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
tcpCliSock.send(('[%s] %s ' % (ctime(),data)).encode())
tcpSerSock.close()
from socket import*
HOST = '127.0.0.1'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST,PORT)
tcpCliSock = socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
data = input("> ")
if not data:
break
tcpCliSock.send(data.encode())
data = tcpCliSock.recv(BUFSIZ).decode()
if not data:
break
print(data)
tcpCliSock.close()
创建UDP/IP服务 客户端
from socket import*
from time import ctime
HOST = ''
PORT = 21568
BUFSIZ = 1024
ADDR = (HOST,PORT)
udpSerSock = socket(AF_INET,SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print("waiting for message...")
data,addr = udpSerSock.recvfrom(BUFSIZ)
data = data.decode()
udpSerSock.sendto(('[%s] %s ' %(ctime(),data)).encode(),addr)
print("...received from and returned to :",addr)
udpSerSock.close()
from socket import*
HOST = "localhost"
PORT = 21568
BUFSIZ = 1024
ADDR = (HOST,PORT)
udpCliSock = socket(AF_INET,SOCK_DGRAM)
while True:
data = input("> ")
data = data.encode()
if not data:
break
udpCliSock.sendto(data,ADDR)
data,ADDR = udpCliSock.recvfrom(BUFSIZ)
data = data.decode()
if not data:
break
print(data)
udpSerSock.close()