python进阶第一课(socket)

创建socket

import socket
socket.socket(AddressFamily, Type)
  • 函数socket.socket创建一个socket, 该函数有两个参数
    • Address Family:可以选择AF_INET(用于Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信), 实际工作中常用AF_INET
    • Type : 套接字类型, 可以是SOCK_STREAM(流式套接字, 主要用于TCP协议)或者SOCK_DGRAM(数据报套接字, 主要用于UDP协议)

tcp socket

创建一个tcp socket

import socket

# 创建tcp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 这里是使用套接字的功能

# 关闭套接字
s.close()

udp socket

创建udp套接字

import socket

# 创建udp的套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 这里是使用套接字的功能

# 关闭套接字
s.close()

使用udp发送和接收数据

发送数据

import socket

# 创建udp的套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 从键盘获取数据
send_data = input("请输入要发送的数据:")

# 使用套接字收发数据
udp_socket.sendto(send_data.encode('gbk'), ("192.168.1.103", 8080))

# 关闭套接字
udp_socket.close()

接收数据

import socket


def main():
    # 1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # ip和端口
    localaddr = ("", 7788)
    # 2.绑定端口
    udp_socket.bind(localaddr)
    # 3.接收信息
    socket_data = udp_socket.recvfrom(1024)
    # 4.打印信息
    print(socket_data[0].decode('GBK'))
    # 5.关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()

udp聊天器

import socket


def main():
    # 1.创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定信息
    udp_socket.bind(("", 8080))
    while True:
        send_ip = input("请输入对方的ip: ")
        send_port = int(input("请输入对方的port: "))
        send_data = input("请输入要发送的数据:")
        udp_socket.sendto(send_data.encode('GBK'), (send_ip, send_port))
        # 接收并显示
        recv_data = udp_socket.recvfrom(1024)
        print(recv_data[1], recv_data[0].decode('GBK'))


if __name__ == '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值