python socket模块学习

python socket模块学习:python


一、socket:套接字。套接字基本上是两个端点的程序之间的“信息通道”,用于描述IP地址和端口,服务器

是一个信息链的句柄,应用程序经过“套接字”向网络发出请求或者应答网络请求。网络


套接字包括两个:服务机套接字和客户机套接字。在建立一个服务器套接字后,让它等待链接。这样并发

它就在某个网络地址处(IP地址和一个端口号的组合)监听,知道有客户端套接字链接。链接完成后,socket

二者就能够进行交互了。ide


二、python socket类的实例化的三个参数:学习

a、地址族(默认为 socket.AF_INET)spa

b、流(默认为 socket.SOCK_STREAM)操作系统

  或者数据报(默认为 socket.SOCK_DGRAM)server

c、使用的协议(默认为0,使用默认值便可)


三、socket 运行或者使用流程:


服务器端:

a、建立套接字,绑定套接字到本地IP与端口

#socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

#s.bind()  

bind()方法是将套接字绑定到地址,在AF_INET下,以元组(host,port)的形式表示地址。


b、开始监听链接

#s.listen()    

listen(backlog)方法:开始监听TCP传入的链接,backlog指定在拒绝链接以前,操做系统能够挂起的

最大的链接数量。该值至少为1,大部分应用程序设为5就能够了。


c、进入循环,不断接受客户端的链接请求。

#s.accept()   接受TCP链接并返回(conn,address),其中conn是新的套接字对象,能够用来接收和发送数据。

address是链接客户端的地址。


d、而后接受传来的数据,并发送给对方数据

#s.recv()   s.sendall()

e、传输完毕后,关闭套接字

#s.close()


客户端:

a、建立套接字,链接远端地址

#socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

#s.connect()

connect()方法:链接到address处的套接字。通常address的格式为元组(hostname,port),若是链接出错,

返回socket.error错误。


b、链接后发送数据和接收数据

#s.recv()   s.sendall()


c、传输完毕后,关闭套接字

#s.close()

server.py:

import socket
ip_port = ('127.0.0.1',9999)
sk=socket.socket()
sk.bind(ip_port)
sk.listen(5)

conn,address = sk.accept()
conn.send('hello word ')
conn.close()

client.py:

import socket

client = socket.socket()
ip_port = ('127.0.0.1',9999)

client.connect(ip_port)
data = client.recv(1024)
print data
相关文章
相关标签/搜索