• python-Unix套接字


     1 #!/usr/bin/python
     2  #coding=utf-8
     3 #server
     4 import socket
     5 import sys
     6 import os
     7  
     8 server_address = './test'
     9  
    10 #首先确保这个文件不能存在,只是用于本地套接字的通信,如果已经存在则不可以了
    11 try:
    12     os.unlink(server_address)  # 用于删除一个文件
    13 except OSError:
    14     if os.path.exists(server_address):
    15         raise
    16  
    17 sock = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
    18  
    19 print >>sys.stderr,'starting up on %s'%server_address
    20 sock.bind(server_address)
    21 sock.listen(5)
    22  
    23 while True:
    24     print >>sys.stderr,'waiting for a connection'
    25     connection,client_address = sock.accept()
    26     try:
    27         print >>sys.stderr,'connection from',client_address
    28         while True:
    29             data = connection.recv(16)
    30             print >>sys.stderr,'received "%s"'%data
    31             if data:
    32                 print >>sys.stderr,'sending data back to the client'
    33                 connection.sendall(data)
    34             else:
    35                 print >>sys.stderr,'no data from',client_address
    36                 break
    37     finally:
    38         connection.close()
     1 #!/usr/bin/python
     2  #coding=utf-8
     3 #client
     4 import socket
     5 import sys
     6  
     7 sock = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
     8 server_address = './test'  #本地套接字通讯是设置的不是IP而是一个文件
     9  
    10 print >>sys.stderr,'connection to %s'%server_address
    11  
    12 try:
    13     sock.connect(server_address)
    14 except socket.error,msg:
    15     print >>sys.stderr,msg
    16     sys.exit(1)
    17  
    18 try:
    19     message = 'This is the message.It will be repeated'
    20     print >>sys.stderr,'sending "%s"'%message
    21     sock.sendall(message)
    22  
    23     amount_received = 0
    24     amount_expected = len(message)
    25  
    26     while amount_received < amount_expected:
    27         data = sock.recv(16)
    28         amount_received += len(data)
    29         print >>sys.stderr,'received "%s"'%data
    30 finally:
    31     print >>sys.stderr,'closing socket'
    32     sock.close()
  • 相关阅读:
    NPM 重新回炉
    构建工具
    工作的环境部署
    Proxy 代理
    Promise 的 用法及实现
    JS 的 继承
    动态规划——LCS
    矩阵连乘——动态规划
    线段树&树状数组
    SpringAOP
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/7196104.html
Copyright © 2020-2023  润新知