您的位置:首页 > 理论基础 > 计算机网络

新手学Python 第十四篇 网络编程(一)

2013-10-25 10:08 176 查看
socket模块函数

tcpSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

创建一个TCP/IP的套接字

udpSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

创建一个UDP/IP的套接字

函数 描述

服务器端套接字函数

s.bind() 绑定地址到套接字

s.listen() 开始TCP监听

s.accept() 被动接受TCP客户的连接,等待连接的到来

客户端套接字函数

s.connect() 主动初始化TCP服务器连接

s.connect_ex() connect()的扩展

公共用途的套接字函数

s.recv() 接受TCP数据

s.send() 发送TCP数据

s.sendall() 完整发送TCP数据

s.recvfrom() 接受UDP数据

s.sendto() 发送UDP数据

s.getpeername() 连接到当前套接字的远端的地址

s.getsockname() 当前套接字地址

s.getsockopt() 返回指定套接字的参数

s.setsockopt() 设置指定套接字的参数

s.close() 关闭套接字

阻塞与非阻塞的套接字函数

s.setblocking() 设置套接字的阻塞与非阻塞模式

s.settimeout() 设置阻塞套接字操作的超时时间

s.gettimeout() 得到阻塞套接字操作的超时时间

面向文件的套接字函数:

s.fileno() 套接字的文件描述符

s.makefile() 创建一个与该套接字关联的文件

例子:

服务器:能够接受客户的信息,并在消息前加一个时间戳后返回的TCP服务器

import socket
from time import ctime
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by',addr
print 'socket is ',conn
while 1:
data = conn.recv(1024)
if not data:
break
conn.send('[%s]%s'%(ctime(),data))
conn.close()


客户端:提示用户输入要传给服务器的信息,显示服务器返回的加了时间戳

的结果

import socket
HOST = 'localhost'
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
while 1:
data = raw_input('>')
if not data:break
s.send(data)
data = s.recv(1024)
print 'data is ',data
s.close()
print 'Received',repr(data)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: