基于python3 的TCP和UDP即时通讯

一、创建一个TCP即时通讯

 

1.1 服务器端代码

import socket

#创建ip和端口号

ip_port=("127.0.0.1",9999)

#创建句柄

sk=socket.socket()

#绑定ip和端口号

sk.bind(ip_port)

#创建最大连接数

sk.listen(5)

#接收和回复数据

conn,addr=sk.accept()

client_data=conn.recv(1024)

print(client_data.decode("utf-8"))

conn.send("今天最高温度30°,最低温度17°,请注意防暑降温".encode("utf-8"))

conn.close()

 

1.2客户端代码

import socket

#连接服务器的Ip和端口号

ip_port=("127.0.0.1",9999)

#生成句柄

sk=socket.socket()

#连接服务器端

sk.connect(ip_port)

#客户端发送数据

sk.send("今天的天气?".encode("utf-8"))

server_reply=sk.recv(1024)

print(server_reply.decode("utf-8"))

sk.close()

1.3运行结果

 

二、创建一个UDP即时通讯

2.1 服务器端代码

#UDP服务器端

#encoding=utf-8

from socket import *

 

ip=""

port=1200

bufsize=128

ADDR=(ip,port)

 

#创建套接字连接

#AF_INET 面向网络,SOCK_DGRAM 无连接的方式

udpserver=socket(AF_INET,SOCK_DGRAM)

udpserver.bind(ADDR)

 

#接收数据

data,addr=udpserver.recvfrom(bufsize)

print(data.decode("utf-8"))

 

#回复数据

udpserver.sendto("已经收到数据".encode("utf-8"),addr)

 

#关闭连接

udpserver.close()

 

2.2 客户端代码

#udp客户端

#encoding=utf-8

from socket import *

 

ip="localhost"

port=1200

bufsize=128

ADDR=(ip,port)

 

#创建套接字连接

udpclient=socket(AF_INET,SOCK_DGRAM)

 

#发送数据

data=input(">")

udpclient.sendto(data.encode("utf-8"),ADDR)

 

#接收数据

data,ADDR=udpclient.recvfrom(bufsize)

print(data.decode("utf-8"))

 

#关闭连接

udpclient.close()

 

2.3 运行结果

基于python3 的TCP和UDP即时通讯_第1张图片

 

 

 

 

 

 

你可能感兴趣的:(python3.6,socket)