udp与tcp 简单程序实现聊天

网络通信

  • udp介绍
  • tcp介绍

udp介绍

1.用udp进行交流
2.udp数据报模式(写信的模型)

from socket import *
def main():
# 创建套接字
udp_socket = socket(AF_INTE,SOCK_DGRAM)
# 发送方的IP与端口
send_addr = ('ip',端口号)
# 绑定端口号
udp_socket.bind(send_addr)
# 发送内容
send_content = input('发送的内容')
# 发送
udp.socket.send(send_content.encode('gb2312'),send_addr)
# 接收信息
recv_content = udp_socket.recvfrom(1024)  # 接收的是元组(第一个是内容,第二个是IP与端口号)
#打印数据
print(recv_content[0].decode('gb2312'))
# 关闭套接字
udo_socket.close()

if __name__ == '__mian__':
while True:
main()

注意:udp发送数据是 sendto,接收数据是recvfrom

tcp介绍

tcp:传输数据协议(打电话模型)
步骤:1.建立链接 2.数据传送 3.终止链接

2.tcp客户端
严格区分客户端与服务器

from socket import *

def main():
	# 1.创建tcp套接字
	tcp_client = socket(AF_INET,SOCK_STREAM)

	# 2.链接服务器
	server_ip = '192.168.0.105'
	server_port = 8080
	server_addr = (server_ip,server_port)
	tcp_client.connect(server_addr)

	# 3.发送或接收数据
	send_msg = input('请输入要发送的信息: ')
	tcp_client.send(send_msg.encode('gb2312'))

	recv_msg = tcp_client.recv(1024)
	print(recv_msg.decode('gb2312'))

	# 4.关闭套接字
	tcp_client.close()


if __name__ == '__main__':
	main()

注意:tcp发送数据是send,接收数据是recv

3.tcp服务器
步骤:1.创建套接字
2.绑定IP和port
3.listen是套接字变成可以被动链接
4.accecp等待客户端的链接
5.recv/send接收发送数据

from socket import *


def main():
	# 1.创建套接字
	tcp_srever = socket(AF_INET,SOCK_STREAM)

	# 2.绑定IP与port
	tcp_srever.bind(('192.168.0.105',8080))

	# 3.listen将套接字变成可以被动链接的状态
	tcp_srever.listen(128)

	# 4.accept等待客户端的链接
	client_socket,client_addr = tcp_srever.accept()

	# 5.接收数据
	recv_msg = client_socket.recv(1024)
	print(recv_msg.decode('gb2312'))

	client_socket.send('haha'.encode('gb2312'))

	# 6.关闭套接字
	client_socket.close()
	tcp_srever.close()

if __name__ == '__main__':
	main()

配合使用的软件还有 ‘网络调试助手’,可以在百度里面下载

你可能感兴趣的:(基础)