TCP方式:
1、创建一个TCP服务器
serSock = socket.socket() #创建服务器套接字
serSock.bind() #把地址绑定到套接字,使得client方便连接
serSock.listen() #监听连接
inf_loop: #服务器无限循环
cliSock = serSock.accept() #接收客户端连接此函数返回一个新的socket, 对应于客户端的socket,建立通信信道
comm_loop: 通信循环
cliSock.recv()/cliSock.send() #接收与发送
cliSock.close() #关闭客户端套接字
serSock.close() #关闭服务器套接字
Python代码:
import socket
from time import ctime
HOST = '10.10.30.205'; PORT = 21567;BUFSIZ = 1024
ADDR= (HOST,PORT)
tcpSerSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print "Waiting for Connection..."
tcpCliSock, addr = tcpSerSock.accept()
print "Connect from:",addr
while True:
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
tcpCliSock.send('[%s],%s'%(ctime(),data))
tcpCliSock.close()
tcpSerSock.close()
2、创建一个TCP客户端
cliSock = socket.socket() #创建客户端套接字
cliSock.connect() #尝试连接服务器
comm_loop: #通信循环
cliSock.send()/cliSock.recv()#发送与接收
cliSock.close() #关闭客户端套接字
Python 代码:
import socket
HOST = '10.10.30.205'; PORT = 21567;BUFSIZ = 1024
ADDR = (HOST,PORT)
tcpCliSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpCliSock.connect(ADDR)
while True:
data = raw_input('> ')
if not data:
break
tcpCliSock.send(data)
data = tcpCliSock.recv(BUFSIZ)
if not data :
break
print data
tcpCliSock.close()
2、UDP方式
创建一个UDP服务器
Python 代码
import socket
from time import ctime
HOST = '10.10.30.205'; PORT = 21567;BUFSIZ = 1024
ADDR= (HOST,PORT)
udpSerSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
print 'Waiting for message...'
data, addr = udpSerSock.recvfrom(BUFSIZ)
udpSerSock.sendto('[%s] %s' % (ctime(),data),addr)
print '...received from and return to: ',addr
udpSerSock.close()
创建一个UDP客户端
Python 代码
import socket
HOST = '10.10.30.205'; PORT = 21567;BUFSIZ = 1024
ADDR= (HOST,PORT)
udpCliSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
while True:
data = raw_input('> ')
if not data :
break
udpCliSock.sendto(data,ADDR)
data,ADDR = udpCliSock.recvfrom(BUFSIZ)
if not data:
break
print data
udpCliSock.close()