python 中的socket_python中的socket

创建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()

3e9767d02a456df53f47e34e1b88a389.png

创建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()

b39fd40f1019ac3f1238696c1669ec31.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值