一个hello/hi的简单的网络聊天程序

Posted wudizs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个hello/hi的简单的网络聊天程序相关的知识,希望对你有一定的参考价值。

  我选择使用python来实现hello/hi的简单网络聊天程序,源代码包括两个部分,客户端代码和服务器端代码,源代码部分如下图所示:

服务器端代码

 1 import socket
 2 
 3 HOST = \'127.0.0.1\'
 4 PORT = 8888
 5 
 6 server = socket.socket()
 7 server.bind((HOST, PORT))
 8 server.listen(1)
 9 
10 print(f\'the server is listening at {HOST}:{PORT}\')
11 print(\'waiting for conntection...\')
12 conn, addr = server.accept()
13 
14 print(f\'connect success addr={addr}\')
15 print(\'waiting for message\')
16 while True:
17     msg = conn.recv(1024)
18     print(\'the clint send:\', msg.decode())
19     response = input(\'enter your response: \')
20     conn.send(response.encode())
21     print(\'waiting for answer\')

客户端代码

 1 import socket
 2 import sys
 3 
 4 try:
 5     host, port = input(\'please enter host address like host:port: \').split(\':\')
 6 except ValueError:
 7     print(\'the address is wrong\')
 8     sys.exit(-1)
 9 
10 if len(host) == 0 or len(port) == 0:
11     print(\'the address is wrong\')
12     sys.exit(-1)
13 else:
14     client = socket.create_connection((host, int(port)))
15 
16     print(\'connect successfully. waiting for response...\')
17 
18     client.send(b\'hello server.\')
19     while True:
20         response = client.recv(1024)
21         print(\'the response is:\', response.decode())
22         msg = input(\'please enter a answer: \')
23         client.send(msg.encode())
24         print(\'waiting for response...\')

  对于源代码实现的效果如下图所示,第一张图为服务器端代码,首先应当启动服务器端,然后等待客户端进行连接,之后再启动客户端如第二张结果图所示,启动客户端需要与服务器端进行连接,由于我使用的是本地的两个端,因此IP地址为127.0.0.1,端口为8888,之后连接成功,自动向服务器端发送一条消息,hello server,而服务器端需要我们来控制内容进行回复,至此客户端与服务器端已经可以正常进行通信了。

简要跟踪分析调用栈直到socket API接口

  socket调用底层API接口的流程大致如上图所示。

  而我们所使用的socket与linux中的socket其实略有不同,python中的socket相当于封装好的linux的socket,使用起来较为简便,只需要提供ip地址,协议,端口号,即可创建一个套接字,等待连接或者进行与服务器端的连接。我们若想熟练使用linux的socket,就更需要对网络连接的过程进行深入的理解,每一步调用对应的API来实现所需的功能。

以上是关于一个hello/hi的简单的网络聊天程序的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的hello/hi的网络聊天程序

基于Java实现hello/hi简单网络聊天程序

Java实现一个hello/hi的简单的网络聊天程序

以您熟悉的编程语言为例完成一个hello/hi的简单的网络聊天程序

用c++完成一个hello/hi的简单的网络聊天程序

使用java实现一个hello/hi的简单的网络聊天程序