


Python socket network programming TCP/IP server and client communication
Python socket network programming
I am new to python. I bought two books some time ago, "Python Programming from Introduction to Practice" and "Python Core Programming Third Edition", Vol. One book mainly talks about some basic syntax and some basic usage methods, while the second book is much more in-depth. I think I have only a little understanding of it. I happened to see this part of network programming, and there are still many things I don’t understand. But thinking about it Through your own continuous exploration and continuous search for information and learning, you should become more transparent sooner or later...
The main module used in this part is the socket module, and you can find the socket in this module () function, which is used to create socket objects. Sockets also have their own set of methods, which can implement socket-based network communication.
socket() module function
To create a socket, you must use the socket.socket() function. Its general syntax is as follows
socket(socket_family, socket_type, protocol=0)
Where socket_family is AF_UNIX or AF_INET, socket_type is SOCK_STREAM or SOCK_DGRAM, protocol is usually omitted, default=0.
So create a TCP/IP socket , you can use the following method to call socket.socket().
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Similarly create a UDP/IP socket, use the following method to call
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Create TCP server
The process of creating TCP server is basically as follows, it is not the real code
ss = socket() #创建服务器套接字 ss.bind() #套接字与地址绑定 ss.listen() #监听连接 inf_loop: #服务器无限循环 cs = ss.accepr() #接受客户端连接 comm_loop: #通信循环 cs.recv()/cs.send() #对话(接收/发送) cs.close() #关闭客户端套接字 ss.close() #关闭服务器套接字(可选)
The actual basic process of creating a TCP server is as mentioned above. It may be slightly different but the basic ideas should be the same. The following is the code of the actual server:
#!/usr/bin/env python # -*- coding: utf-8 -*- from socket import * #将 socket 属性引入到命名空间 HOST = '' #这是对 bind()方法的标识表示可以使用任何可用的地址 PORT = 21571 #端口号 BUFSIZ = 1024 #缓冲区大小,1kb ADDR = (HOST,PORT) #地址???? tcpSerSocket = socket(AF_INET,SOCK_STREAM) #创建 tcp 套接字 tcpSerSocket.bind(ADDR) #将地址绑定到套接字上 tcpSerSocket.listen(5) #设置并启动套接字监听 while True: #无限循环,等待客户端连接 print('waiting for connection...') tcpCliSocket,addr = tcpSerSocket.accept() #被动接受客户端连接 print('...connected from:',addr) while True: #对话循环,等待客户端发送消息 data = tcpCliSocket.recv(BUFSIZ) #接收客户端消息 if not data: #如果消息是空白,跳出对话循环,关闭当前连接 break tcpCliSocket.send(data) #如果收到消息,将消息原封不动返回客户端 tcpCliSocket.close() tcpSerSocket.close()
Create TCP client
Same as above, a simple non-code process
cs = socket() #创建客户端套接字 cs.connect() #尝试连接服务器 comm_loop: #通信循环 cs.send()/cs.recv() #对话(发送/接收) cs.close() #关闭客户端套接字
In fact, creating a client is also the translation of the above steps
#!/usr/bin/env python # -*- coding: utf-8 -*- from socket import * HOST = 'localhost' #服务器的主机名 PORT = 21571 #端口号 BUFSIZ = 1024 #缓冲区 ADDR = (HOST,PORT) #地址 tcpCliSocket = socket(AF_INET,SOCK_STREAM) #创建客户端套接字 tcpCliSocket.connect(ADDR) #连接服务器 while True: #通信循环 data = input('> ') #客户端输入信息 if not data: #如果输入信息为空,则跳出循环,关闭通信 break data = str.encode(data) tcpCliSocket.send(data) #发送客户端信息 data = tcpCliSocket.recv(BUFSIZ) #接受服务器返回信息 if not data: #如果服务器未返回信息,关闭通信循环 break print('get:',data.decode('utf-8')) tcpCliSocket.close()
Of course, this is just the most basic Basic communication, and I still don’t know much about things like host name, port number, etc. What I am currently doing is communicating on the same computer, and the port number also needs to be the same. What should I do if different computers communicate? I'm just a novice...
Thank you for reading, I hope it can help everyone, thank you for your support of this site!
For more articles related to Python socket network programming TCP/IP server and client communication, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

Regular expressions are powerful tools for pattern matching and text manipulation in programming, enhancing efficiency in text processing across various applications.

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

In Python, how to dynamically create an object through a string and call its methods? This is a common programming requirement, especially if it needs to be configured or run...

The article discusses popular Python libraries like NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow, Django, Flask, and Requests, detailing their uses in scientific computing, data analysis, visualization, machine learning, web development, and H
