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 ...
随机推荐
- Installing Symfony project with PHP 7.3 version
参考地址:https://cmsdk.com/php/installing-symfony-project-with-php-7-3-version.html Tryng to install (an ...
- vue双花括号的使用
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- C语言readdir()函数:读取目录函数
相关函数:open, opendir, closedir, rewinddir, seekdir, telldir, scandir 头文件:#include <sys/types.h> ...
- [LeetCode] 477. Total Hamming Distance(位操作)
传送门 Description The Hamming distance between two integers is the number of positions at which the co ...
- HashSet -无序,不重复集合
package cn.learn.collection.Set; import java.util.Objects; public class IsPerson { private int age; ...
- [Linux] 019 软件包管理简介
1. 软件包分类 源码包 脚本安装包 二进制包(RPM 包.系统默认包) 2. 源码包 (1)源码包的优点 开源,如果有足够的能力,可以修改源代码 可以自由选择所需的功能 软件是编译安装,所以更加适合 ...
- windows安装 阿里云的Fun工具
由于项目使用到了 函数计算,特此了解到了需要安装 阿里云的Fun工具 Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算.API 网关.日志服务等资源.它通过一个 ...
- Sass-数字运算
在 Sass 运算中数字运算是较为常见的,数字运算包括前面介绍的:加法.减法.乘法和除法等运算.而且还可以通过括号来修改他们的运算先后顺序.和我们数学运算是一样的,一起来看个示例. .box { wi ...
- webdriver原理
WebDriver 安装C/S构架设计的: 代码(客户端)--->驱动(解析代码)----->浏览器(服务端) 代码通过http请求发给浏览器驱动,驱动解析代码把他们发给浏览器,浏览器执行 ...
- 7天玩转 ASP.NET MVC
在开始时请先设置firefox中about:config中browser.cache.check_doc_frequecy设置为1,这样才能在关闭浏览器时及时更新JS 第一.二天的内容与之前的重复,这 ...