python socket

Posted F

tags:

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

套接字socket

  套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix。 因此,有时人们也把套接字称为“伯克利套接字”或“BSD 套接字”。一开始,套接字被设计用在同 一台主机上多个应用程序之间的通讯。这也被称进程间通讯,或 IPC。套接字有两种(或者称为有两个种族),分别是基于文件型的和基于网络型的。

 

 

基于tcp下的socket

 

server

import socket        #引入模块
server=socket.socket()    #创建server对象
ip_port=(\'192.168.15.78\',8888)    #声明服务端的IP和程序端口
server.bind(ip_port)       #把ip_port绑定到对象
server.listen()       #监听
while 1:
    conn,addr=server.accept()    #等待客户端连接
    while 1:
        server_msg=input(\'服务端:\')      
        conn.send(server_msg.encode(\'utf-8\'))    #向客户端发送消息
        from_client_msg=conn.recv(1024)      #接收客户端消息
        print(from_client_msg.decode(\'utf-8\'))
        if from_client_msg.decode(\'utf-8\')==\'byebye\':     #如果收到消息为byebye,就断开此次连接,继续等待下一个客户端连接
            break            #这就是优雅的断开
    conn.close()
server.close()

client

import socket
client=socket.socket()
server_ip_port=(\'192.168.15.78\',8888)  #设置要连接服务端程序的IP和端口
client.connect(server_ip_port)    #进行连接
while 1:
    from_server_msg=client.recv(1024)     #接收服务端消息
    print(from_server_msg.decode(\'utf-8\'))
    client_msg=input(\'客服端:\')    
    client.send(client_msg.encode(\'utf-8\'))     #向服务端发送消息
    if client_msg==\'byebye\':            #如果输入为byebye,就断开连接
        break
client.close()

基于udp协议下的socket

 

server

import socket
server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server_ip_port=(\'192.168.12.39\',8888)
server.bind(server_ip_port)

while 1:
    from_client_msg, adrr = server.recvfrom(1024)
    print(\'来自%s的消息:%s\'%(adrr,from_client_msg.decode(\'utf-8\')))
    if from_client_msg.decode(\'utf-8\')==\'bye\':
        break
    msg=input(\'请输入:\')
    msg1=msg+\',\'+from_client_msg.decode(\'utf-8\').replace(\'sb\',\'alexsb\')
    server.sendto(msg1.encode(\'utf-8\'),adrr)

client

import socket
client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server_ip_port=(\'192.168.12.39\',8888)
while 1:
    msg=input(\'请输入:\')
    client.sendto(msg.encode(\'utf-8\'),server_ip_port)
    if msg==\'bye\':
        break
    from_server_msg,adrr=client.recvfrom(1024)
    print(from_server_msg.decode(\'utf-8\'))
client.close()

 

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

golang代码片段(摘抄)

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档