


Basic knowledge of Python 1: Network communication data transmission
Free learning recommendation: python tutorial(Video)
Python implements network communication data transmission (basic knowledge (1))
- Preface
- Basic knowledge learning
- 1. Synchronous and asynchronous
- 2. What is socket
- 3 , Classification of socket sockets
- 1. Stream format socket SOCK_STREAM
- 2. Datagram format Socket (SOCK_DGRAM)
- 4. IP address, MAC address, port address
- Conclusion
Preface
I am not a communications and information major, but I have recently come into contact with some knowledge in this area and it feels quite interesting. I just studied it and recorded the learning results here so that more people can learn from it. It would be great if I could get some advice from the boss! ! !
Basic knowledge learning
1. Synchronous and asynchronous
-
Synchronization means that the entire processing process is executed sequentially. When each process is completed, the results are returned. It is a linear execution method, and the execution process cannot be crossed. It is generally used for procedures with strong process, such as user login, which requires user verification before logging into the system.
(The sender sends one and the receiver receives one, which is synchronous.) -
Asynchronous means just sending the calling instruction. The caller does not need to wait for the called method to complete execution; instead, it continues to execute the following process. It is a parallel processing method. You do not have to wait for a program to finish executing. You can perform other tasks, such as the page data loading process. There is no need to wait for all data to be obtained before displaying the page.
(The sender sends data, and the receiver has a buffer area, which can be accepted according to its own rules. Of course, the sender can also send data according to its own rules. The two are asynchronous)
2. What is socket
- ## The original meaning of socket is "socket". In the field of computer communication, socket Translated as "socket", it is a convention or a way for computers to communicate with each other. Through the socket convention, network connections are established between computers.
- To facilitate understanding, we can compare it to a socket. We can get power supply from the power grid by inserting the plug into the socket. Similarly, in order to transmit data to a remote computer, we need Connect to the Internet, and socket is the tool used to connect to the Internet.
- Different from UNIX/Linux, Windows distinguishes between sockets and files. Windows treats sockets as a network connection, so it is necessary to call a program specially designed for sockets. Data transfer functions, input and output functions for ordinary files are invalid.
3. Classification of socket sockets
The two main commonly used ones are stream format sockets (SOCK_STREAM) and data Report format socket (SOCK_DGRAM).
1. The stream format socket SOCK_STREAM
-
has the following characteristics:
The data will not disappear during the transmission process;
Data is transmitted in sequence;
The sending and receiving of data is asynchronous. -
It uses the TCP protocol (The Transmission Control Protocol). The TCP protocol will control your data to arrive in order and without errors.
Emphasis on high quality.
2. Datagram format socket (SOCK_DGRAM)
- The computer only transmits data and does not Data verification, if data is corrupted in transit, or does not reach the other computer, there is no way to remedy it. In other words, if the data is wrong, it is wrong and cannot be retransmitted. Because datagram sockets do less verification work, their transmission efficiency is higher than that of stream format sockets.
-
It has the following characteristics:
Emphasis on fast transmission rather than transmission order;
The transmitted data may be lost or damaged;
Limit each transmission The data size;
The sending and receiving of data are synchronous.
Datagram sockets also use the IP protocol for routing, using the UDP protocol (User Datagram Protocol). - Note: SOCK_DGRAM is not as bad as imagined, data will not be lost frequently, and data errors are only a small probability event.
4. IP address, MAC address, port address
-
IP address: is the abbreviation of Internet Protocol Address, translated as "Internet Protocol Address". Currently, most software uses IPv4 addresses, but IPv6 is also being accepted, especially in education networks, where it has been widely used.
For IPV4, it is unrealistic to have one IP address for one computer, so it is usually one IP address for one LAN. The router will find the location of the other party based on the IP address. The router has a very efficient and intelligent algorithm and will quickly find the target LAN. - MAC address: is the physical address. A LAN address has the MAC addresses of multiple computers. In addition to the The IP address of the other party is attached, and the MAC address of the other party is also attached. When the data packet reaches the LAN, the router/switch will find the corresponding computer based on the MAC address in the data packet
-
Port address: A computer can provide multiple network services at the same time, such as Web service (website), FTP service (file transfer service), SMTP service (mailbox service), etc., With only the IP address and MAC address, although the computer can receive the data packet correctly, it does not know which network program to hand the data packet to for processing, so the communication fails.
In order to distinguish different network programs, the computer will assign a unique port number (Port Number) to each network program. Port is a virtual and logical concept. A port can be understood as a door through which data flows in and out. Each door has a different number, which is the port number. As shown in the picture below: -
Supplement: I just looked at the serial port and port ## today #the concept of:The serial port is an I/O communication interface and is a hardware category. It is referred to as the serial port because it uses serial signal communication.
The port (referring to the general PC operating system, not counting the microcontroller) is just a 16-bit digital identifier, used to identify different communication processes in network communication. It is defined by the operating system, that is, if there is no operating system There is no concept of port
Conclusion
I have learned a lot about communication recently, I hope Take it out and share it with everyone. This article is just the beginning of the next few articles, making some basic preparations. Next, I will prepare some related knowledgeFinally, I will prepare several examples for everyone refer to! ! !
If you want to know what happened next time, please listen to the breakdown!
Free learning recommendation: python video tutorial
The above is the detailed content of Basic knowledge of Python 1: Network communication data transmission. For more information, please follow other related articles on the PHP Chinese website!

Python's flexibility is reflected in multi-paradigm support and dynamic type systems, while ease of use comes from a simple syntax and rich standard library. 1. Flexibility: Supports object-oriented, functional and procedural programming, and dynamic type systems improve development efficiency. 2. Ease of use: The grammar is close to natural language, the standard library covers a wide range of functions, and simplifies the development process.

Python is highly favored for its simplicity and power, suitable for all needs from beginners to advanced developers. Its versatility is reflected in: 1) Easy to learn and use, simple syntax; 2) Rich libraries and frameworks, such as NumPy, Pandas, etc.; 3) Cross-platform support, which can be run on a variety of operating systems; 4) Suitable for scripting and automation tasks to improve work efficiency.

Yes, learn Python in two hours a day. 1. Develop a reasonable study plan, 2. Select the right learning resources, 3. Consolidate the knowledge learned through practice. These steps can help you master Python in a short time.

Python is suitable for rapid development and data processing, while C is suitable for high performance and underlying control. 1) Python is easy to use, with concise syntax, and is suitable for data science and web development. 2) C has high performance and accurate control, and is often used in gaming and system programming.

The time required to learn Python varies from person to person, mainly influenced by previous programming experience, learning motivation, learning resources and methods, and learning rhythm. Set realistic learning goals and learn best through practical projects.

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.


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

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 English version
Recommended: Win version, supports code prompts!

Dreamweaver CS6
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft