Python-套接字(socket)

一、定义

套接字:本质上就是个接口,封装了tcp/udp,提供了发送、接收的功能,大大的简化了我们开发程序的难度,它是绝大多数应用程序的基础,如果把互联网中的信息流通比作网线的话,那么套接字就是连接网线的插口。

Python套接字的实现

1服务端的实现

import socket

"""
 server = socket.socket(
    family = socket.AF_INET, #地址族
    type = socket.SOCK_STREAM #代表TCP
     type = socket.SOCK_DGRAM #代表udp
   ) #大多数情况下使用的是传输控制协议(TCP)
"""

#1、创建套接字
tcp_server = socket.socket()
#2、绑定ip和端口
tcp_server.bind(("",6969))
#3、监听
tcp_server.listen()
#4、等待接入
while True:
    conn,addr = tcp_server.accept() # 会阻塞
    #创建一个对等的socket对象,用来和你客户端进行数据交互
    #5、收发数据
    print("有链接进来了,地址是%s" % addr[0])
    while True:
        #先接收
        data = conn.recv(1024) #返回的是字节类型的数据
        if data:
            print("从%s接收了:%s" %(addr[0],data.decode("utf-8")))
            #再发送
            conn.send(data)
        else:
            conn.close()
            break


2、客户端的实现

import socket
# 1、创建套接字
client = socket.socket()
# 2、连接
client.connect(("127.0.0.1",6969))
while True:
    data = input(">>:")
    if data == "q":
        break
    else:
        # 3、发数据
        client.send(data.encode()) #发送字节类型的数据
        # 4、收一下
        res = client.recv(1024)
        print(res.decode("utf-8"))
client.close()

你可能感兴趣的:(Python学习)