套接字socket

套接字 socket
family - 设置ip协议类型, AF_INET(ipv4), AF_INET6(ipv6)

AF_INET(又称 PF_INET)是 IPv4 网络协议的套接字类型,AF_INET6 则是 IPv6 的;而 AF_UNIX 则是 Unix 系统本地通信。
选择 AF_INET 的目的就是使用 IPv4 进行通信。因为 IPv4 使用 32 位地址,相比 IPv6 的 128 位来说,计算更快,便于用于局域网通信。
而且 AF_INET 相比 AF_UNIX 更具通用性,因为 Windows 上有 AF_INET 而没有 AF_UNIX。

type - 设置传输协议类型, SOCK_STREAM(TCP),SOCK_DGRAM(UDP)

SOCK_STREAM 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送。
SOCK_DGRAM 是无保障的面向消息的socket , 主要用于在网络上发广播信息。
SOCK_STREAM是基于TCP的,数据传输比较有保障。SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播
SOCK_STREAM 是数据流,一般是tcp/ip协议的编程,SOCK_DGRAM分是数据包,是udp协议网络编程

如果需要传输的数据是准确的,建议采用TCP,也就是SOCK_STREAM
如果你传输的是视频音频等数据,丢几个包也无所谓的,可以采用UDP,也就是SOCK_DGRAM

from socket import *

服务器

server = socket()
server.bind((“ip地址”, 端口号))
server.listen(512)
while True:
print(“监听中…”)
connect, address = server.accept()
message1 = connect.recv(1024)
print(message1.decode(encoding=“utf-8”))
message2 = input(“输入:”)
connect.send(message.encode())
connect.close()

客户端

client = socket()
client.connect((“服务器ip地址”, 端口号))
while True:
message1 = client.recv(1024)
print(message1.decode(encoding=“utf-8”))
message2 = input(“输入:”)
client.send(message2.encode())
client.close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值