socket | tcp客户端 tcp服务器 udp客户端 udp 服务器 创建方法
tcp服务器
#coding=utf-8
'''
这里是tcp服务器端,要先启动
'''
import socket
import threading bind_ip = "0.0.0.0"
bind_port = 9999 '''
"0.0.0.0"
在服务器端它表示
本机上的所有IPV4地址,如果一个服务有多个IP地址(192.168.1.2和10.1.1.12),那么我们如果设置的监听地址是0.0.0.0那么我们无论是通过IP192.168.1.2还是10.1.1.12都是可以访问该服务的。
在路由中,0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。
''' # 创建服务器端的套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((bind_ip,bind_port)) server.listen(5) print "[*] Listening on %s:%d" % (bind_ip,bind_port) # 用来跟客户端通信的
def handle_client(client_socket): # 接受客户端的信息
request = client_socket.recv(1024) print "[*] Received: %s" % request # 向客户端发送信息
client_socket.send("这里是服务器端!")
'''
getpeername()用于得到与某个套接字关联的外地协议地址,说白了就是得到客户端
'''
print client_socket.getpeername()
client_socket.close() while True: client,addr = server.accept() print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1]) # 用多线程
client_handler = threading.Thread(target=handle_client,args=(client,))
client_handler.start()
tcp客户端:
#coding=utf-8
'''
这里是tcpd的客户端
需要服务器端先打开端口
'''
import socket
# 创建套接字对象 确定要连接的服务器
# target_host=input("请输入目标ip:")
# # print target_host
# target_port=input("请输入目标端口:")
target_host="127.0.0.1"
target_port=9999
clinet = socket.socket(socket.AF_INET,socket.SOCK_STREAM) clinet.connect((target_host,target_port))
clinet.send("这里是tcp客户端")
response = clinet.recv(4096)
print response
udp客户端:
#coding=utf-8
'''
这里是udp的客户端
需要服务器端先打开端口
'''
import socket target_host="127.0.0.1"
target_port=9999
clinet = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) clinet.sendto("这里是udp客户端",(target_host,target_port))
response,addr = clinet.recvfrom(4096)
print "udp客户单开始执行"
print response
print addr
udp服务器:
# coding=utf-8
'''
import socket
import threading
from time import *
bind_ip = "0.0.0.0"
bind_port = 9999 # 创建服务器端的套接字
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind((bind_ip, bind_port)) print "[*] Listening on %s:%d" % (bind_ip, bind_port) while True: data,addr=server.recvfrom(1024)
server.sendto("这里是udp客户端")
print "接收:",data server.close()
待完善
socket | tcp客户端 tcp服务器 udp客户端 udp 服务器 创建方法的更多相关文章
- python网络编程socket编程(TCP、UDP客户端服务器)
摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...
- Linux系统编程(37)—— socket编程之UDP服务器与客户端
典型的UDP客户端/服务器通讯过程: 编写UDP Client程序的步骤 1.初始化sockaddr_in结构的变量,并赋值.这里使用"8888"作为连接的服务程序的端口,从命令行 ...
- Linux系统编程(32)—— socket编程之TCP服务器与客户端
TCP协议的客户端/服务器程序的一般流程 服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后, ...
- TCP/UDP客户端
Python 网络编程----模块socekt 在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器.发送垃圾数据.进行模糊测试活进行其他任务的情况. 简单的TCP客户端代码: #!/u ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- TCP/IP网络编程之基于UDP的服务端/客户端
理解UDP 在之前学习TCP的过程中,我们还了解了TCP/IP协议栈.在四层TCP/IP模型中,传输层分为TCP和UDP这两种.数据交换过程可以分为通过TCP套接字完成的TCP方式和通过UDP套接字完 ...
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...
- Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
前面几篇中实现的client每次运行只能从命令行读取一个字符串发给服务器,再从服务器收回来,现在我们把它改成交互式的,不断从终端接受用户输入并和server交互. /* client.c */ #in ...
随机推荐
- Iterator 和 ListIterator 对比
Iterator 的方法 //是否还有下一个 boolean hasNext(); //返回下一个 E next(); //移除返回的下一个 void remove(); ListIterator 的 ...
- 学习使用Delphi for android 调用Java类库
http://blog.csdn.net/laorenshen/article/details/41148253 学习使用Delphi for android 调用Java类库 2014-11-15 ...
- Vagrant 手册之 box - box 的信息格式
原文地址 创建 Vagrant 的 box 时,可以提供在运行 vagrant box list -i 时展示的与用户相关的其他信息.例如,可以打包 box,以包含有关该 box 的作者和网站信息: ...
- 第 11 章 python线程与多线程
一.什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程. 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位. 多线程(即多 ...
- sts测试流程
测试目的: 测试安全补丁打上了没 测试前提: 1.发货版本,user debug版本,相应安全补丁已合入,测试工具与安全补丁是对应的 2.selinux:Enable 3.连接ADB,stay awa ...
- JavaScript.Remove
Array.prototype.remove = function (from, to) { var rest = this.slice((to || from) + 1 || this.le ...
- SAS去空格
data test; x=" aaa bbb hahaha"; x1=compress(x); x2=left(x); p ...
- Vue小白篇 - Vue介绍
Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...
- ajax_封装函数_步骤1
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- KVC、KVO 理解
参考经典链接: https://www.jianshu.com/p/f8198ca5e682 https://www.jianshu.com/p/be80318115a7 一. KVC 1.KVC介绍 ...