码迷,mamicode.com
首页 > 编程语言 > 详细

十五、python开发之网络通信socket

时间:2018-05-22 18:35:10      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:监听端口   大写   table   之间   本机   基于   创建   连接数   seq   

一、客户端:
1、导入socket库
import socket
 
2、指定协议类型
client = socket.socket( )           #不填默认是socket.AF_INET,socket.SOCK_STREAM)
 
协议类型有:
socket 类型 描述
socket.AF_UNIX 用于同一台机器上的进程通信(既本机通信)
socket.AF_INET 用于服务器与服务器之间的网络通信IPV4方式
socket.AF_INET6 基于IPV6方式的服务器与服务器之间的网络通信
socket.SOCK_STREAM 基于TCP的流式socket通信
socket.SOCK_DGRAM 基于UDP的数据报式socket通信
socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次SOCK_RAW也可以处理特殊的IPV4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头
socket.SOCK_SEQPACKET 可靠的连续数据包服务
 
3、连接服务器
client.connect((‘www.baidu.com‘,80))    #使用元组tuple的方式传递两个参数
 
4、发送数据
client.send(b‘你好‘)            #传送的数据必须为字节的方式
 
5、接收数据
data = client.recv(1024)        #每次接收1K数据,data为接收到的数据
 
6、关闭socket
client.close()
 
 
二、服务器端:
1、选择协议:
server = socket.socket()
 
2、监听端口:
server.bind((‘localhost‘,80))         #使用元组tuple方式传参
server.listen(3)                    #监听端口,并设置最大等待连接数
 
3、等待客户端连接:
while True:
    conn,addr = server.accept()        #接收新连接
    t = threading.Thread(target = tcplink,args=(conn,addr))      #创建新线程处理tcp连接
    t.start()
 
4、与客户端数据交互
while True:
    data = conn.recv(1024)        #接收1kb数据
    conn.send(data.upper())       #将客户端的数据小写变大写传回去
 

十五、python开发之网络通信socket

标签:监听端口   大写   table   之间   本机   基于   创建   连接数   seq   

原文地址:https://www.cnblogs.com/caibaofei/p/9073151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!