Python 使用Socket模块编写一个简单的服务器和客户端

任务

Socket套接字开始监听后,使用accept函数来等待客户连接。这个过程在循环中无限循环,服务器处理完和客户端的连接后会再次调用accpet函数,等待下一个连接。

客户端代码

1 import socket
2 s1=socket.socket()
3 s1.bind(("127.0.0.1",2345))
4 s1.listen(5)
5 while 1:
6     conn,address = s1.accept()
7     print("a new connect from",address)
8     conn.sendall("Hello world".encode())
9     conn.close()

先导入scoket模块,初始化一个Socket,将IP地址和端口与Socket进行绑定,开启监听,使用accept()函数等待客户连接,打印连接ip地址,发送数据 "Hello world",最后关闭连接

(python3和Python2在套接字返回值解码上有区别,在Python3版本中需要填写字节型,所有需要使用encode()函数,详细看链接 https://www.fujieace.com/python/str-bytes.html

服务端代码

1 import socket
2 s2 = socket.socket()
3 s2.connect(("127.0.0.1",2346))
4 data = s2.recv(1024)
5 s2.close()
6 print(‘Received:‘,repr(data.decode()))

先导入scoket模块,初始化一个Socket,connect()函数连接指定到目标服务器,接收数据,关闭连接,打印数据

(同样的,将字节输出为字符时,需要用decode()方法,不使用则会在输出内容前显示一个b,指示这字符串是字节的意思)

原文地址:https://www.cnblogs.com/code0x/p/12228616.html

时间: 2024-10-12 11:56:28

Python 使用Socket模块编写一个简单的服务器和客户端的相关文章

Python 使用Scapy模块编写一个简单的扫描端口是否过滤

代码 1 from scapy.all import IP,TCP,sr 2 ans,unans=sr(IP(dst="192.168.1.128")/TCP(dport=[21,23,135,443,445],flags="A"),timeout=3) 3 for s,r in ans: 4 if s[TCP].dport == r[TCP].sport: 5 print(str(s[TCP].dport)+" is unfiltered")

多线程编程学习笔记——编写一个异步的HTTP服务器和客户端

接上文 多线程编程学习笔记——使用异步IO 二.   编写一个异步的HTTP服务器和客户端 本节展示了如何编写一个简单的异步HTTP服务器. 1.程序代码如下. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Ta

Python网络编程——编写一个简单的回显客户端/服务器应用

今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 (1)服务器端及对应代码解释 1 # ! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 编写回显服务器 4 5 import socket 6 import sys 7 import argparse 8 9 # 定义常量 10 host = 'l

使用 Python 的 Socket 模块构建一个 UDP 扫描工具

译文:oschina 英文:bt3gl 当涉及到对一些目标网络的侦察时,出发点无疑是首先发现宿主主机.这个任务还可能包含嗅探和解析网络中数据包的能力. 几周前,我曾经谈到了如何使用Wireshark来进行数据包嗅探,但如果你没有wireshark,你如何去监控网络流量呢? 这一次,Python提供了几种解决方案,今天我将一步步演示如何建立一个UDP主机发现工具.首先,我们要看我们如何处理原始套接字来编写一个简单的嗅探器,它能够查看和解析网络数据包.然后,我们将在子网内多线程运行该进程,结果将在我

如何用Java编写一个简单的服务器和客户机

今天我要向大家介绍的是自己编写的一个比较简单的服务器和客户机程序,注意一下哦,比较简单.好了,闲话休提,砸门直入主题. 小编先从客户机和服务器的模型开始讲解.简单来说,我们实现的这种模型呢,我们每一个用户称为一个客户机,用户之间的通信之间需要一个中转,所有客户机的通信都依托于这个中转,很明显,这个中转,就是砸门的服务器了.整个模型比较简单明了,那么,接下来我们就直接进入实现阶段. 我们从实现服务器开始.Java提供了这样的一个类,ServerSocket.我们通过实例化它的方式来创建一个服务器.

用C++写一个简单的服务器和客户端

我们将创建一个服务器节点add_two_ints_server,它将会收到两个整数,并且返回它们的和.切换目录到之前建立的beginner_tutorials包下: cd ~/catkin_ws/src/beginner_tutorials 编辑src/add_two_ints_server.cpp文件: vim src/add_two_ints_server.cpp 也就是说我们写的客户点也是一个node节点,它的cpp和生成的可执行模块和前面的talker.listener是一样的,只不过他

python基础===socket模块的讲解(转)

一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听.两端使用各自的socket来发送和 接收信息. 在使用的时候,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76):端口数值的取

Python的socket模块详解

一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听.两端使用各自的socket来发送和 接收信息. 在使用的时候,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76):端口数值的取

使用socket编程实现一个简单的文件服务器

使用socket编程实现一个简单的文件服务器.客户端程序实现put功能(将一个文件从本地传到文件服务器)和get功能(从文件服务器取一远程文件存为本地文件).客户端和文件服务器不在同一台机器上. put [-h hostname] [-p portname] local_filenameremote_filename get [-h hostname] [-p portname] remote_filenamelocal_filename 程序如下: 客户端Client.java package