python socket的简单例子

python socket的简单例子 « Cyrec’s Blog

python socket的简单例子

服务端的通信过程:

socket—>bind—>listen(连接请求)—>accept—>send(发送数据)—>recv(接受数据)—>close

客户端的通信过程:

socket—>bind(可选)—>connect(连接服务器)—>sends(发送数据)—>recv(接受数据)—>close

下面是一个简单的服务端客户端的实现:

server.py:

01#!/usr/bin/python
02#encoding=utf-8
03 
04import socket
05 
06s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
07#第一个参数AF_INET,AF_INET6,AF_UNIX默认AF_INET,第二个参数有SOCK_STREAM和SOCK_DGRAM
08#默认为SOCK_STREAM流套接字提供双向有序且不重复的数据服务也可以直接写s=socket.socket()
09 
10#host = socket.gethostname()
11host = ''
12port = 1234
13s.bind((host, port)) #绑定socket地址只有一个参数 是一个地址+端口的元组
14 
15s.listen(10) #开始监听,参数是队列长度
16 
17while True:
18    c, addr = s.accept() #接受一个连接
19 
20    print 'Get connection from', addr
21    c.send('This is a simple server') #发送数据
22    print c.recv(1024) #读取数据
23    c.close()

client.py:

01#!/usr/bin/python
02#encoding=utf-8
03 
04import socket
05 
06s = socket.socket() #生成一个socket对象
07 
08server = socket.gethostname()
09print server
10port = 1234 #一般1024以下端口号可能会有权限限制
11s.connect((server, port)) #连接服务器
12print s.recv(1024) #读取数据
13 
14say = raw_input(u'说点什么...'.encode('gbk'))
15s.send(str(say))
16 
17s.close() #关闭连接
原文地址:https://www.cnblogs.com/lexus/p/2405390.html