天天看点

python socket编程_Python之Socket编程学习笔记

1.面向连接方式和无连接方式

面向连接方式,在通信发生之前先建立起一个连接,类似打电话,使用虚拟线路类型的套接字,实现这种连接方式的基本协议是传输控制协议(Transmission Control Protocol, TCP)。这种通信方式又叫做“虚拟线路”或”流式套接字“。

代码如下:

tcpSocket=socket(AF_INET,SOCK_STREAM)

无连接方式,在通信开始前不用建立连接,类似邮递,使用数据图类型的套接字,实现这种连接方式的基本协议是用户数据图协议(User Datagram Protocol, UDP)。

代码如下:

udpSocket=socket(AF_INET,SOCK_DGRAM)

2.TCP服务器端代码

from socket import *

print '***** Now starting server *****'

Host=''

Port=12306

Buffsize=1024

Addr=(Host,Port)

ServerSocket=socket(AF_INET,SOCK_STREAM) #初始化一个TCP套接字

print '* Initing connection...'

ServerSocket.bind(Addr) #绑定到地址绑定到套接字上

ServerSocket.listen(5) #设置和启动TCP监听程序,参数指定最多允许多少个客户连接到服务器

print '* Connection inited...'

while True:

print '* Now waiting for connection...\n'

ClientSocket,addr=ServerSocket.accept() #接受客户连接(阻断)

print '* Connected from',addr

ClientSocket.send('Server: Connect successfully')

while True:

data=ClientSocket.recv(Buffsize) #接受TCP消息

print '* Client: ',data

if data == 'quit':

print '\n* Client ',addr,' disconnected'

break

ClientSocket.send('Server: Message[ %s ] send successfully' % data)

#返回信息给客户端

ClientSocket.close()

ServerSocket.close()

python socket编程_Python之Socket编程学习笔记