python网络编程之socket

Posted 蔠缬草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python网络编程之socket相关的知识,希望对你有一定的参考价值。

  socket

  应用层和tcp,ucp协议之间的一个接口,用户只需操作接口,复杂的数据组织工作由其内部自行完成。

  TCP协议的socket(套接字):

    服务端

import socket
sk = socket.socket()  # 创建一个套接字对象
sk.bind((127.0.0.1, 8080))  # 绑定本地IP地址和端口
sk.listen()     # 监听

conn, address = sk.accept()   # 创建连接


while True:
    ret = conn.recv(1024)   # 接收数据  需要指定接收字节数
    if ret == bbye:
        conn.send(ret)
        break
    print(ret.decode(utf-8))
    info = input(>>>).encode(utf-8)
    conn.send(info)   # 发送数据  必须是bytes类型
conn.close()   # 关闭连接
sk.close()   # 关闭套接字

    客户端

import socket
sk = socket.socket()  # 创建套接字
sk.connect((127.0.0.1, 8080))  # 连接服务端

while True:
    info = input(>>>).encode(utf-8)
    sk.send(info)   # 发送数据
    ret = sk.recv(1024)  # 接收数据
    if ret == bbye:
        break
    print(ret.decode(utf-8))

sk.close()  # 关闭套接字

 

  UDP协议的scoket(套接字):

    服务端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM)  # 创建ucp套接字对象
sk.bind((127.0.0.1, 8080))  # 绑定IP和端口

msg, address = sk.recvfrom(1024)  # 等待接收数据  ucp必须先接收数据
print(msg.decode(utf-8))
sk.sendto(bhello, address)  # 发送数据  要携带发送数据的地址

sk.close()

    客户端

import socket
sk = socket.socket(type=socket.SOCK_DGRAM)  # 创建ucp套接字对象
ip_port = (127.0.0.1, 8080)  # 指定服务端IP和端口

sk.sendto(bhi, ip_port)  # 发送数据到指定服务端
msg, address = sk.recvfrom(1024)  # 接收返回的数据
print(msg.decode(utf-8))


sk.close()

 

 

  

以上是关于python网络编程之socket的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 socket网络模块简单应用

Python—网络编程之tcp编程

python之网络编程

python3网络编程之socket

python之socket网络编程

python之socket网络编程