zoukankan      html  css  js  c++  java
  • 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 徐芳波 

    作者    :秋时

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

  • 相关阅读:
    .NET开源项目
    关于微信号的校验
    java 中关于synchronized的通常用法
    关于java 定时器的使用总结
    新的博客已经启用,欢迎大家访问(402v.com)
    Hadoop综合大作业
    hive基本操作与应用
    理解MapReduce计算构架
    熟悉HBase基本操作
    第三章 熟悉常用的HDFS操作
  • 原文地址:https://www.cnblogs.com/Netsharp/p/8365065.html
Copyright © 2011-2022 走看看