Python Socket 网络连接

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

socket和file的区别:

  • file模块是针对某个指定文件进行【打开】【读写】【关闭】
  • socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】

 

 

 

 

 

 1 socket  服务端 的 一个例子:
 2 
 3 
 4 import socket
 5 
 6 ip_port = ('127.0.0.1', 9999)   # IP 与 端口,在一个 元组里面
 7 
 8 sk = socket.socket()          # socket 默认是 tcp 协议
 9 sk.bind(ip_port)              # 绑定 IP 与 端口
10 sk.listen(5)                  # 服务端最大连接数
11 
12 while True:
13     print('等待连接....')
14     conn,addr = sk.accept()                          #accpet 返回两个变量 conn 是客户端连接过来时创建的实例。addr 是客户端的IP地址。
15     print('客户段连接IP ', addr)                      #当客户端连接过来时,打印 客户端的IP地址。
16     client_data = conn.recv(1024)                    # client_data 这个变量等于 客户端发送的数据 (1024) = 1K 。
17     print(str(client_data,'utf8'))                   # 打印客户端发送过来的信息,因为是中文所以python 3.0 中要使用 str 来声明 utf8
18     conn.sendall(bytes('服务端发来消息...','utf8'))    # 发送这条信息到客户端,python 3.0 要使用 bytes 来发送, 并声明 utf8
19     conn.close()                                     # 关闭 这次连接,只是关闭连接,不是退出程序。

 

 

 1 socket 客户端的一个例子:
 2 
 3 
 4 import socket
 5 
 6 ip_port = ('127.0.0.1', 9999)         # IP 与 端口,在一个 元组里面
 7 sk = socket.socket()                  # socket 默认是 tcp 协议
 8 sk.connect(ip_port)                   # 连接服务端 IP 与 端口
 9 
10 sk.sendall(bytes('客户端发来消息....','utf8'))            # 发送这条信息到服务端,python 3.0 要使用 bytes 来发送, 并声明 utf8
11 server_reply = sk.recv(1024)                            # server_reply 这个变量等于 客户端发送的数据 (1024) = 1K 。
12 print(str(server_reply,'utf8'))                         # 打印服务端发送过来的信息,因为是中文所以python 3.0 中要使用 str 来声明 utf8
13 sk.close()                                              # 关闭连接

 

posted @ 2016-07-28 18:00  丶小炒肉  阅读(375)  评论(0)    收藏  举报