Home > Backend Development > Python Tutorial > Detailed introduction to socket network programming in python (with examples)

Detailed introduction to socket network programming in python (with examples)

不言
Release: 2018-10-13 16:34:49
forward
3215 people have browsed it

This article brings you a detailed introduction to socket network programming in python (with examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Three elements of network communication

  • IP

When communicating, both parties You must know the other party's identity, just like you must know the other party's email address when sending an email. The unique identifier of every computer on the Internet is its IP address, similar to 123.123.123.123.

The IP address is actually a 32-bit integer (called IPv4). The IP address represented by a string, such as 192.168.0.1, is actually a 32-bit integer grouped by 8 bits. The purpose is to facilitate reading. .
The IPv6 address is actually a 128-bit integer, which is an upgraded version of the currently used IPv4 and is represented by a string. Similar to 2001:0db8:85a3:0042:1000:8a2e:0370:7334 .
  • Port port

When two computers communicate, it is not enough to only send the IP address, because there are multiple computers running on the same computer. Network program. After an IP packet arrives, whether it is handed over to the browser or QQ requires a port number to distinguish.

Each network program applies for a unique port number from the operating system. In this way, two processes need their own IP addresses and respective port numbers to establish a network connection between two computers.

  • TCP/UDP protocol

In order to connect all different types of computers around the world, a set of A globally accepted protocol, everyone refers to the Internet protocol as TCP/IP protocol

socket programming

Socket is an abstract concept of network programming. Usually we use a Socket to mean "opening a network link", and to open a Socket you need to know the IP address and port number of the target computer, and then specify the protocol type.

import socket
# socket.gethostname()当不传入参数时,返回本机主机名
print(socket.gethostname()) #DESKTOP-EN0LQJH

#域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称
#通过域名查找服务器IP地址
print(socket.gethostbyname('www.baidu.com'))    #119.75.216.20

#通过一个IPv4的地址来获取主机信息
print(socket.gethostbyaddr('114.114.114.114'))

#通过IP/port组合,访问服务器信息
# 如果是AF_INET则格式为:(address, port),如果为AF_INET6,则返回(address, port, flow info, scope id)

print(socket.getaddrinfo('www.xunlei.com',80))
Copy after login

Detailed introduction to socket network programming in python (with examples)

Use socket to implement a simple web server

import socket
def reply_info(socketObj):
    # socketObj.send('ok')
    with open('hello.html') as f:
        socketObj.send(f.read().encode('utf-8'))
if __name__=="__main__":
    #1. 创建socket对象
    socket_server = socket.socket()
    #2. 绑定IP和端口
    socket_server.bind(('192.168.1.165',9999))
    print("服务器端已经启动9999端口......")
    #3. 监听是否有客户端连接
    socket_server.listen(5)

    while True:
        # 4. 接受客户端的连接
        socket_client,address = socket_server.accept()
        # 5. 接收客户端发来的信息
        data = socket_client.recv(1024)
        # 6. 与客户端进行交互, 返回给客户端信息
        reply_info(socket_server)
        socket_server.close()
Copy after login

The above is the detailed content of Detailed introduction to socket network programming in python (with examples). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template