• python网络socket编程


    一、服务端

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    
    import socket
    import sys
    from thread import *
     
    HOST = '127.0.0.1'   # Symbolic name meaning all available interfaces
    PORT = 8888 # Arbitrary non-privileged port
     
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print 'Socket created'
     
    #Bind socket to local host and port
    try:
        s.bind((HOST, PORT))
    except socket.error , msg:
        print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
        sys.exit()
         
    print 'Socket bind complete'
     
    #Start listening on socket
    s.listen(10)
    print 'Socket now listening'
     
    #Function for handling connections. This will be used to create threads
    def clientthread(conn):
        #Sending message to connected client
        conn.send('Welcome to the server. Type something and hit enter
    ') #send only takes string
         
        #infinite loop so that function do not terminate and thread do not end.
        while True:
             
            #Receiving from client
            data = conn.recv(1024)
            reply = '收到信息:' + data
    
            print reply
    
            reply = "my name is 徐芳波 " 
            if not data: 
                break
         
            conn.sendall(reply)
         
        #came out of loop
        conn.close()
     
    #now keep talking with the client
    while 1:
        #wait to accept a connection - blocking call
        conn, addr = s.accept()
        print 'Connected with ' + addr[0] + ':' + str(addr[1])
         
        #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function.
        start_new_thread(clientthread ,(conn,))
     
    s.close()

    二、客户端

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # 文件名:client.py
    
    
    import socket               # 导入 socket 模块
    import time
    
    s = socket.socket()         # 创建 socket 对象
    host = '127.0.0.1' # 获取本地主机名
    port = 8888                # 设置端口好
    
    s.connect((host, port))
    
    while True :
    
        s.send("my name is 开心 " )
        data = s.recv(1024)
        print '收到信息:'+data
        time.sleep(1)
    
    s.close()

    三、运行服务端

    root@xushi:~/ai/python# python netsharp.pigeon.py
    Socket created
    Socket bind complete
    Socket now listening
    Connected with 127.0.0.1:40114
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心 
    收到信息:my name is 开心

    四、运行客户端

    root@xushi:~/ai/python# python netsharp.pigeon.client.py 
    收到信息:Welcome to the server. Type something and hit enter
    
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 
    收到信息:my name is 徐芳波 

    作者    :秋时

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    计算机作业(四)
    计算作业(三)衡阳汽车工程学院
    数制转换
    第十一次作业——PPT内容
    第三次作业——计算机用CMD命令关机建立文件夹
    第一次作业——PC端配置详细2017级机械设计新生杨路生
    PC端配置详细 2017级机械设计新生 刘林峰
    数制转换
    计算机基础作业 17级-车辆工程-周金霖
    计算机应用基础教程作业 车辆工程 冯大昕
  • 原文地址:https://www.cnblogs.com/Netsharp/p/8365065.html
Copyright © 2020-2023  润新知