Python网络编程

xxx.xxx.xxx.xxx
0-255
端口:65536个
计算机内不同应用使用网络的区分

知名端口:0-1023
80 HTTP
21 FTP

动态端口:
对某个使用网络的程序动态的分配端口
使用网络时要申请端口

socket套接字:
创建

import socket
socket.socket(AddressFamily, Type)

AddressFamily:
AF_INET 网络通信
AF_UNIX 电脑内部通信
Type:
SOCK_STREAM 流式套接字(TCP)
SOCK_DGRAM数据报套接字(UDP)

UDP:
发送

sendto(内容, ip+port(元组表示))

内容不能用字符串 要加.encode(“utf-8”)

接收:
socket.bind((IP, 端口)) 程序绑定端口
IP不填表示本机任意一个IP

socket.recvfrom(一次接收最大字节) 接收

返回值返回接收数据报(接收到的数据, (发送方IP,发送端口))

接收到的数据要解码用decode(“gbk”)

TCP机制:
面向连接(三次握手)
有序传输
重发丢失
舍弃重复
无差错数据传输
阻塞/ 流量控制

TCP 客户端:
创建套接字
SOCK_STREAM
连接服务器

socket.connect(ip, port)

收发数据

socket.send(发送的信息)

关闭套接字

TCP 服务器:
创建套接字

bind绑定ip port

listen使套接字变为可被动连接

accept等待客户连接

返回值有两个 ,连接的IP

recv/send 收发数据(新的套接字操作收发)

PS:
收到的只有文本与UDP不同
当客户端套接字下线后 服务器端会recv接触阻塞返回数据长度为零,可以以此判断客户端是否下线

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值