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  
04 import socket
05  
06 s = 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()
11 host = ''
12 port = 1234
13 s.bind((host, port)) #绑定socket地址只有一个参数 是一个地址+端口的元组
14  
15 s.listen(10) #开始监听,参数是队列长度
16  
17 while 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  
04 import socket
05  
06 s = socket.socket() #生成一个socket对象
07  
08 server = socket.gethostname()
09 print server
10 port = 1234 #一般1024以下端口号可能会有权限限制
11 s.connect((server, port)) #连接服务器
12 print s.recv(1024) #读取数据
13  
14 say = raw_input(u'说点什么...'.encode('gbk'))
15 s.send(str(say))
16  
17 s.close() #关闭连接

相关文章:

  • 2021-11-17
  • 2022-01-05
  • 2021-05-25
  • 2022-02-20
  • 2022-03-03
  • 2021-11-21
  • 2022-12-23
猜你喜欢
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
  • 2022-01-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案