socket通信简单总结

网络通信–Socket

socket套接字通信分为两种
1UDP
2TCP
一、UDP–使用udp传送数据
1、创建套接字
使用UDP之前需要导入socket库

upd_socket  = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  #两个参数代表含义ipv4,tcp

2、UDP发送/接受数据
(1) 发送数据

udp_socket.sendto(string, (‘IP’,端口号))
#第一个参数为发送的数据,第二个参数为要发送给即:-目标主机
string 一般只支持二进制,所以发送前需要编码 string = string.encode(‘utf-8)

(2)接受数据

udp_socket.bind((‘ip’,端口))#绑定方法传入的是一个元组
udo_socket.recvfrom(size)#size表示接受数据的大小

3、关闭套接字

udp_socket.close()

思路:
1、创建套接字对象,
2、在知道对面IP和端口号的前提下发送数据
3、关闭套接字
问题:1、为什么要知道IP和端口号才能发送?
网络上IP是区分不同电脑的一种方式,所以通过IP可以知道发给那一台电脑,一台电脑上有很多运行程序,一个程序占用一个端口,唯一的端口号,使其不会发送给错误的程序
二、TCP–使用TCP传送数据
1、创建套接字

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

2、连接服务器发送数据/客户端接受数据
(1)TCP接受数据

tcp_server_socket.bind(('', 7890))#绑定信息
tcp_server_socket.listen(128)#让套接字变为被动模式listen
new_client_socket,client_addr = tcp_server_socket.accept()#等待被连接,连接后产生一个新的套接字,这个套接字就是用来处理他们两个之间的信息传送,而之前的套接字是用来处理接收所有套接字然后转接
reve_data = new_client_socket.recv(1024)#接受数据,接收到的是二进制的,需要转码
            #回送一部分数据给客户端
            new_client_socket.send('ha'.encode('utf-8'))
new_client_socket.close()

(2)TCP发送数据

tcp_socket.connect((‘ip’,port))#iPh和端口号
tcp_socket.send(send_data.encode('utf-8'))

3、关闭套接字

tcp_socket.close()

思路:
1、TCP作为发送时简单,连接要发送的主机IP和端口。发送数据
2、作为接受方的时候,需要绑定自身的IP和端口号,然后变为监听模式-listen,被连接成功会产生新的套接字,和访问方的IP和端口,接受数据,回送数据
大总结:
1、一般发送方不需要自身绑定,需要知道服务器的IP和端口号,而服务器方需要绑定
2、当TCP循环处理一个客户端发送来的信息的时候,需要判断客户端请求是否结束

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值