socket 在 python 3 网络编程中的使用

使用socket方法小记

Socket 就是对 协议的底层封装,使用户可以简单的进行使用。
Socket 里面就干两件事,send / receive
socket Types
socket.SOCK_STREAM # for TCP
socket.SOCK_DGRM # for UDP
socket.SOCK_RAW #原始套接字,普通的布达拉字无法处理ICMP、IGMP等网络报文,而SOCK_RAM可以,另外,SOCK_RAW 也可以处理特殊的报文v4
socket.SOCK_RDW # 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。
socket.SOCK_SEQPACKET #废弃了

先有服务端,也就是接收端
python 中,需要先导入 socket:import socket
然后再定义socket 的协议类型:socket.TCP/IP
接收端是监听动作的:listen( IP地址,端口号)
等待客户端的数据 :waiting()
接收数据 :recv()
最后是响应数据请求:send()

'''接收端'''
import socket
socket.TCP/IP
listen(0.0.0.0,端口)
waiting()
recv()
send

客户端,也必须先导入socket: import socket
也需要确认socket的类型,这里当然是跟服务端一样的TCP/IP类型:socket.TCP/IP
确认访问的服务端ip地址和对应程序的端口:connect(ip地址,端口号)
然后开始发送数据:socket.send(内容)
数据发送结束后,当然就是关闭socket : socket.close

'''发送端'''
import socket
socket.TCP/IP
connect(a.ip,a.port)
socket.send(count)
socket.recv()
socket.close()

伪代码写完就来实现它吧!新建一个 server.py 文件,从字面上来看这就是一个服务端的文件

import socket
server = socket.socket() # 确定socket的协议

#如果IP地址为空表示可以接收任何电脑发送过来的数据
server.bind(('localhost',60000)) # bind中只接收一个参数,元组中第一个元素是地址,第二个元素是端口号

server.listen()

conn,addr = server.accept() # server.accept 返回两个值,一个做为标识,一个是地址,conn和 addr分别接收
#conn就是客户端连接过来在服务器端生成的一个实例

data = conn.recv(1024) # 接收的最大数据,单位是字节
conn.send(data)
print(data)
server.close()

接下来就是客户端,新建一个client.py文件

import socket
client = socket.socket()
client.connect(('localhost',60000))
client.send(b'Hello World !')
data = client.recv(1024)
client.close()

一个接收一个发送,这就实现了一个socket网络通信的过程。当然这只是一个最简单的例子,程序还可以继续扩展,例如使用一个循环重复去调用 socket 的发送信息与接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值