zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    GUI起头
    最大公约数
    最小公倍数
    最大公约数、最小公倍数
    质数——筛选法
    质数——用已有质数求质数
    质数——6N±1法
    质数——1到n遍历法
    微服务的优势
    收到offer!
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10086375.html
Copyright © 2011-2022 走看看