基于python完成一个hello/hi的简单的网络聊天程序(代码片段)

知其不二 知其不二     2022-12-23     388

关键词:

一、Socket 套接字简介

套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。

传输层实现端到端的通信,因此,每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。传输层连接的端点叫做套接字(socket)。根据RFC793的定义:端口号拼接到IP地址就构成了套接字。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。

二、基于Python实现一个简单的网络聊天程序

此例中使用了Python中的Socket API接口,程序的功能就是:客户端向服务器发送一条消息,服务器端返回一条消息给客户端,以实现简单的网络聊天。

server.py

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((127.0.0.1,9999))  #监听端口
s.listen(1)  #调用listen()方法开始监听端口,传入的参数指定等待连接的最大数量
sock,addr = s.accept()
buf = sock.recv(1024).decode()

while True:
    if  buf!=exit:
        print(客户端:’+buf)
        data = input(服务端:)
        sock.send(data.encode())
        if  data==exit:
        break

     buf =sock.recv(1024).decode()

 client.py

import socket
import sys
#创建一个socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#建立连接
s.connect((127.0.0.1, 9999))
while True:
    # 发送数据:
    try:
        data = input("客户端说:")
        s.send(data.encode())
        buf = s.recv(1024).decode()
        if buf!=exit:
            print("服务端说: " + buf)
    except:
        print("Dialogue Over")
        s.close()
        sys.exit(0)

 

 

 

哈哈哈

 

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

在这片博文我们将使用python完成一个hello/hi的简单的网络聊天程序 先做一下准备工作 1.linux的socket基础api:  使用socket()创建套接字intsocket(intaf,inttype,intprotocol);af为IP地址类型,AF_INE和AF_INET6分别对应ipv4和ipv6地址type... 查看详情

用c++完成一个hello/hi的简单的网络聊天程序(代码片段)

1.什么是Socket 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络... 查看详情

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

目录Socket简要阐述Socket的概念Socket原理hello/hi的简单网络聊天程序实现服务器端客户端程序执行结果跟踪分析调用栈&LinuxAPI对比创建ServerSocket调用栈图示源码分析Socket绑定调用栈图示源码分析Socket监听调用栈图示源码分析Socket... 查看详情

使用python实现一个hello/hi的简单的网络聊天程序(代码片段)

一、TCP/IP协议通信原理   TCP/IP协议包含的范围非常的广,它是一种四层协议,包含了各种硬件、软件需求的定义。TCP/IP协议确切的说法应该是TCP/UDP/IP协议。UDP协议(UserDatagramProtocol用户数据报协议),是一种保护消息边界的... 查看详情

一个hello/hi的简单的网络聊天程序(代码片段)

  我选择使用python来实现hello/hi的简单网络聊天程序,源代码包括两个部分,客户端代码和服务器端代码,源代码部分如下图所示:服务器端代码1importsocket23HOST=‘127.0.0.1‘4PORT=888856server=socket.socket()7server.bind((HOST,PORT))8server.list... 查看详情

利用java的socket实现一个简单hello/hi聊天程序(代码片段)

 利用java的Socket实现一个简单hello/hi聊天程序 首先,我们来用java实现一个简单的hello/hi聊天程序。在这个程序里,我学习到了怎么用socket套接套接字来进行编程。简单理解了一些关于socket套接字和底层调用的关系。关于jav... 查看详情

在windows环境下用c++完成一个hello/hi网络聊天程序(代码片段)

...我们了解了socket网络程序编程,接下来,就要学以致用,完成一个hello/hi的网络聊天程序。  Socket介绍      Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其... 查看详情

一个简单的hello/hi的网络聊天程序(代码片段)

TCP套接字函数了解socket函数为了执行网络I/O,一个进程必须做的第一件事情就是调用socket函数,指定期望的通信协议类型(使用ipv4的TCP、使用ipv6的UDP、Unix域字节流协议等)#include<sys/socket.h>intsocket(intfamily,inttype,intprotocol);返... 查看详情

java实现一个hello/hi的简单的网络聊天程序(代码片段)

...显示。socket定义    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程 查看详情

使用java实现一个hello/hi的简单的网络聊天程序(代码片段)

...进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。正如打电话之前,双方必须各自拥有一台电话机一样。        套接字之间的连接过程可以... 查看详情

c语言实现一个hello/hi的简单聊天程序并跟踪分析到系统调用(代码片段)

...是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用 查看详情

一个hello/hi的简单的网络聊天程序和pythonsocketapi与linuxsocketapi之间的关系(代码片段)

1.Socket概述  套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套... 查看详情

hello/hi的简单的网络聊天程序(代码片段)

... 在Internet层,解析IP地址,寻找通往目标IP的目的地的下一个路由地址。在网络接口层,则是寻找响应的硬件(MAC)地址。数据流以及网络拓扑结构如下图所示。   数据流以及网络拓扑结构  我们知道两个进程如果需要进... 查看详情

简单的网购秒杀活动

...也试着实现一个简单的秒杀系统。本文的秒杀系统虽然是基于SpringMVC+Spring+Mybatis框架实现,但是其中的架构思想以及处理问题的方法是语言无关的。所以使用其他编程 查看详情

实用的python超简单!基于python搭建个人“云盘”(代码片段)

...每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类似云盘的服务,使得我们可以在web界面中完成文件的上传与下载,十分的方便,最重要的是,特别特别特别简单!下... 查看详情

python 是不是有一个简单的基于进程的并行映射?

】python是不是有一个简单的基于进程的并行映射?【英文标题】:Isthereasimpleprocess-basedparallelmapforpython?python是否有一个简单的基于进程的并行映射?【发布时间】:2010-12-1420:00:53【问题描述】:我在找一个简单的python的基于进程... 查看详情

python一个简单的异步蜘蛛类。基于龙卷风(代码片段)

查看详情

在基于 python/tkinter 的文本编辑器中实现文本自动完成

】在基于python/tkinter的文本编辑器中实现文本自动完成【英文标题】:Implementtext-autocompletioninpython/tkinterbasedtexteditor【发布时间】:2011-09-2221:38:03【问题描述】:我想在下面代码框中提供的这个简单Tkinter文本编辑器的主文本窗口... 查看详情