GoodZhang在学Python(十二)--简单客户端、服务端socket通信

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhdl11/article/details/38864839

对比以前学习java网络编程,最想写的一个程序就是简单的客户端及服务器,然后实现两方的通信。

下面写一个简单的服务器与客户端的例子

Server:

# ----------------------------------
__author__ = 'zWX231671'
__description__ = ''
# ----------------------------------
import socket
HOST = ''                 # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
# step1 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置socket参数,一般情况下,程序终止后,都会将端口保留一段时间,避免其他进程及本服务器的的另外实例使用
# 设置 socket.SO_REUSEADDR 为true时,在服务器socket被关闭或者服务器进程终止后马上释放服务器的端口
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定主机及端口
s.bind((HOST, PORT))
# 监听连接
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
while True:
    data = conn.recv(1024)
    print('receive from client ', data)
    if not data: break
    conn.sendall(data)
conn.close()
主要步骤

  1. 创建socket对象
  2. 设置socket参数
  3. 绑定主机及端口
  4. 监听连接
  5. 发送数据

Client:

# ----------------------------------
__author__ = 'zWX231671'
__description__ = ''
# ----------------------------------
import socket

HOST = '127.0.0.1'    # The remote host
PORT = 50007              # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))

主要步骤
  1. 创建socket对象
  2. 设置参数
  3. 绑定主机与端口
  4. 连接服务器
  5. 发送数据


猜你喜欢

转载自blog.csdn.net/zhdl11/article/details/38864839