十python开发之网络通信socket

Posted caibaofei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十python开发之网络通信socket相关的知识,希望对你有一定的参考价值。

一、客户端:
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的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 网络编程——SOCKET开发

python全栈开发从入门到放弃之socket网络编程基础

Python基础笔记系列十三:socket网络编程

Python全栈开发之10网络编程

Python之socket编程

Python网络编程之TCP服务端程序开发