博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python网络编程笔记一
阅读量:5155 次
发布时间:2019-06-13

本文共 2535 字,大约阅读时间需要 8 分钟。

AF_INET:IPV4

AF_INET6:IPV6

套接字类型:

SOCK_STREAM:TCP

SOCK_DGRAM:UDP

 

创建TCP套接字,也可以不传递参数,默认创建TCP套接字

tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

下面是基于python3实现的简单的TCP服务端和客户端

TCP使用send、recv发送和接收数据

服务端:

1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7  8 tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 9 10 tcpSocket.bind(ADDR)11 12 tcpSocket.listen(5)13 14 while True:15     print("watting clien connection...")16     tcpClienSock, addr = tcpSocket.accept()17     print("connected from:", addr)18     while True:19         data = tcpClienSock.recv(BUFFSIZE)20         if not data:21             break22         print("i have received data: ", data)23         sendData = "hello, i have received your date: %s" % data24         tcpClienSock.send(bytes(sendData, encoding="utf-8"))25     tcpClienSock.close()26 tcpSocket.close()

客户端:

1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7  8 tcpClientSock = socket.socket() 9 r = tcpClientSock.connect(ADDR)10 print(r)11 12 while True:13     data = input(">>")14     if data == "q" or data == "quit":15         break16     tcpClientSock.send(bytes(data, encoding="utf-8"))17     recvData = tcpClientSock.recv(BUFFSIZE)18     if not recvData:19         break20     print(recvData)21 tcpClientSock.close()

 

接下来是简单的UDP服务器和客户端实现

UDP使用sendto、recvfrom发送和接收数据

UDP服务器:

1 import socket 2  3 HOST = "127.0.0.1" 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7 #UDP服务器创建套接字后,只需要绑定上IP和端口号,等待接收数据即可 8 #不需要listen和accept 9 udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)10 udpSocket.bind(ADDR)11 12 while True:13     print("watting message...")14     data, addr = udpSocket.recvfrom(BUFFSIZE) #会返回发送者地址15     sendData = "hello, i have recv your date: %s" % data16     udpSocket.sendto(bytes(sendData, encoding="utf-8"), addr)17     print("receive message %s from %s" % (data, addr))18 udpSocket.close()

 

UDP客户端:

1 import socket 2  3 HOST = "127.0.0.1" # 'localhost'也可以 4 PORT = 9999 5 BUFFSIZE = 1024 6 ADDR = (HOST, PORT) 7 #创建套接字即可发送数据,不需要connect连接 8 udpClientSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 9 10 while True:11     data = input(">>")12     if data == "q" or data == "quit":13         break14     udpClientSock.sendto(bytes(data, encoding="utf-8"), ADDR)15     recvData, addr = udpClientSock.recvfrom(BUFFSIZE)16     if not recvData:17         break18     print(recvData)19 udpClientSock.close()

 

转载于:https://www.cnblogs.com/xhcdream/p/7019794.html

你可能感兴趣的文章
Linux Kernel API
查看>>
oracle学习
查看>>
【C语言项目】贪吃蛇游戏(下)
查看>>
DevExpress第三方控件汉化的全部代码和使用方法
查看>>
二分查找算法(C#实现)
查看>>
vue项目中开启Eslint碰到的一些问题及其规范
查看>>
ES terms多值搜索及范围过滤深入剖析-搜索系统线上实战
查看>>
大咖专栏 | DevOps组织如何有效地实施MSA
查看>>
工厂模式
查看>>
忍不住了, 和大家聊聊怎么写简历吧, 关于简历的深度思考
查看>>
高并发编程
查看>>
(前端)html与css css 19、tab栏
查看>>
一起来学习.net core程序使用中介者模式:MediatR插件
查看>>
debian9 设置
查看>>
5句话搞定ES5作用域
查看>>
Build tool
查看>>
php 小坑记录
查看>>
2018.7.28 二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
查看>>
通过 poi 导入 Excel代码
查看>>
《CSS基础教程》 读书笔记三
查看>>