📜  从客户端发送和接收消息的Python程序

📅  最后修改于: 2022-05-13 01:55:01.470000             🧑  作者: Mango

从客户端发送和接收消息的Python程序

套接字编程是一种连接网络上的两个节点以相互通信的方式。一个套接字(节点)在 IP 的特定端口上侦听,而另一个套接字伸手到另一个以形成连接。服务器形成侦听器套接字,而客户端伸手到服务器。
套接字编程是通过导入套接字库并制作一个简单的套接字开始的。

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

这里我们创建了一个套接字实例并传递了两个参数。第一个参数是AF_INET ,第二个参数是SOCK_STREAMAF_INET是指地址族 ipv4。 SOCK_STREAM 表示面向连接的 TCP 协议。
注意:有关更多信息,请参阅Python中的套接字编程
现在我们可以使用 Server 连接到服务器:
服务器是为网络或 Internet 上的其他计算机提供服务的程序。同样,客户端是从服务器接收服务的程序。当服务器想要与客户端通信时,就需要一个套接字。套接字是服务器和客户端之间的连接点。
向客户端发送消息的 TCP/IP 服务器程序。

Python3
import socket
  
# take the server name and port name
host = 'local host'
port = 5000
  
# create a socket at server side
# using TCP / IP protocol
s = socket.socket(socket.AF_INET,
                  socket.SOCK_STREAM)
  
# bind the socket with server
# and port number
s.bind(('', port))
  
# allow maximum 1 connection to
# the socket
s.listen(1)
  
# wait till a client accept
# connection
c, addr = s.accept()
  
# display client address
print("CONNECTION FROM:", str(addr))
  
# send message to the client after
# encoding into binary string
c.send(b"HELLO, How are you ? \
       Welcome to Akash hacking World")
 
msg = "Bye.............."
c.send(msg.encode())
  
# disconnect the server
c.close()


Python3
import socket
  
# take the server name and port name
  
host = 'local host'
port = 5000
  
# create a socket at client side
# using TCP / IP protocol
s = socket.socket(socket.AF_INET,
                  socket.SOCK_STREAM)
  
# connect it to server and port
# number on local computer.
s.connect(('127.0.0.1', port))
  
# receive message string from
# server, at a time 1024 B
msg = s.recv(1024)
  
# repeat as long as message
# string are not empty
while msg:
    print('Received:' + msg.decode())
    msg = s.recv(1024)
 
# disconnect the client
s.close()


从服务器接收消息的 TCP/IP 服务器程序。

Python3

import socket
  
# take the server name and port name
  
host = 'local host'
port = 5000
  
# create a socket at client side
# using TCP / IP protocol
s = socket.socket(socket.AF_INET,
                  socket.SOCK_STREAM)
  
# connect it to server and port
# number on local computer.
s.connect(('127.0.0.1', port))
  
# receive message string from
# server, at a time 1024 B
msg = s.recv(1024)
  
# repeat as long as message
# string are not empty
while msg:
    print('Received:' + msg.decode())
    msg = s.recv(1024)
 
# disconnect the client
s.close()

注意:在两个单独的 DOS 窗口中打开,首先执行服务器,然后执行客户端。
服务器输出:

客户端输出: