python 应用socket模块TCP半双工通信

# TCP服务器
__author__ = ‘magicpwn‘
import socket
import threading

bind_ip = ‘0.0.0.0‘
bind_port = 9999
# 构造服务器套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 套接字绑定主机、端口
server.bind((bind_ip, bind_port))
# 开始监听,监听最大连接数数量为5
server.listen(5)

# 线程任务,处理请求,参数(客户端套接字)
def handle_client(client_socket):
    while True:
        # 接受信息
        request = client_socket.recv(1024)
        print "[*] Received: %s" % request
        ask = raw_input()
        # 发送信息
        client_socket.send(ask)
    client_socket.close()

# 主循环等待连接
while True:
    # 接受连接,和连接终端的信息
    client, addr = server.accept()
    print "[*] Accepted Connecton from: %s:%d" % (addr[0], addr[1])
    client_handler = threading.Thread(target=handle_client,args=(client,))
    client_handler.start()
# TCP客户端
# -*- coding:utf-8 -*-
__author__ = ‘magicpwn‘
import socket
# tcp客户端
target_host = ‘127.0.0.1‘
target_port = 9999
# AF_INET是标准IPv4地址或主机名,SOCK_STREAM表示是TCP的方式
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立连接
client.connect((target_host, target_port))
# 发送数据
while True:
    ask = raw_input()
    client.send(ask)
    # 接收返回的数据,参数是buffersize.
    response = client.recv(4096)
    print response
时间: 2024-10-26 19:00:32

python 应用socket模块TCP半双工通信的相关文章

python之socket模块

UDP client #!/usr/bin/env python2.7 #-*-coding:utf-8 -*- import socket s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.sendto("hello",("localhost",8001)) data,addr = s.recvfrom(1024) print "receive data:%s from %s" % (dat

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):端口数值的取

python实现socket通讯 TCP

 Server: # server import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s = socket.socket() s.bind(address) s.listen(5) ss, addr = s.accept() print 'got connected from',addr ss.send('byebye') ra = ss.rec

python中socket模块

一.初识socket      socket 是网络连接端点,每个socket都被绑定到一个特定的IP地址和端口.IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76):端口数值的取值范围是0~65535.端口数小于1024的都是为众所周知的网络服务所保留的 (例如Web服务使用的80端口):最大的保留数被存储在socket模块的IPPORT_RESERVED变量中.你也可以为你的程序使用另外的端口数 值. 不是所有的IP地址都对世界的其它地方可

python之socket模块详解--小白博客

主要是创建一个服务端,在创建服务端的时候,主要步骤如下:创建socket对象socket——>绑定IP地址和端口bind——>监听listen——>得到请求accept——>接收请求recv——>发送信息send——>关闭close客户端代码就是连接服务器,接收和发送消息,具体流程如下:创建socket对象socket——>connet连接服务器——>获取消息recv——>发送消息send——关闭close 1.服务端代码 #服务器端 import s

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

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

使用Python的socket模块搭建tcp服务器与客户端

# __author__ = 'ZSnail' # socket就是一个网络通讯协议 # 服务器端 import socket server = socket.socket() server.bind(('127.0.1.1', 6969)) # 绑定要监听的端口 server.listen() # 监听 print('开始等??') # 在这里会形成阻塞,一直等到有客户连接 # conn就是客户端连过来而在服务器内生成的一个连接实例 conn, address = server.accept(

老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全性测试,但是条件限制你无法用商业工具,所以自己动手要写测试工具,在这里我们在测试开发工程师的就业培训中构建了一个场景,就是自己开发udp扫描工具,我们在现阶段主要是用python为主要开发语言来实现各种场景下的测试,而quicktestprofessional的培训我们已经免费. 首先我们了解下概念:套接字能够访问底层网络信息.如,我们可以用它来检查IP和ICMP报头,他们