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 服务器 创建方法的更多相关文章

  1. python网络编程socket编程(TCP、UDP客户端服务器)

    摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...

  2. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...

  3. Linux系统编程(37)—— socket编程之UDP服务器与客户端

    典型的UDP客户端/服务器通讯过程: 编写UDP Client程序的步骤 1.初始化sockaddr_in结构的变量,并赋值.这里使用"8888"作为连接的服务程序的端口,从命令行 ...

  4. Linux系统编程(32)—— socket编程之TCP服务器与客户端

    TCP协议的客户端/服务器程序的一般流程 服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后, ...

  5. TCP/UDP客户端

    Python 网络编程----模块socekt 在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器.发送垃圾数据.进行模糊测试活进行其他任务的情况. 简单的TCP客户端代码: #!/u ...

  6. 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    [转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...

  7. TCP/IP网络编程之基于UDP的服务端/客户端

    理解UDP 在之前学习TCP的过程中,我们还了解了TCP/IP协议栈.在四层TCP/IP模型中,传输层分为TCP和UDP这两种.数据交换过程可以分为通过TCP套接字完成的TCP方式和通过UDP套接字完 ...

  8. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...

  9. Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互

    前面几篇中实现的client每次运行只能从命令行读取一个字符串发给服务器,再从服务器收回来,现在我们把它改成交互式的,不断从终端接受用户输入并和server交互. /* client.c */ #in ...

随机推荐

  1. Altium Designer chapter2总结

    原理图开发环境这节中需要注意的如下: (1)电路图首先项设定中需注意的地方: 1.General:中经常用到的自动生成交叉节点.放置元件时自动增加选项.复合封装元件的字母数字后缀选项.默认电源对象名称 ...

  2. Python笔记(十八)_私有属性、实例属性、类属性

    私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过 ...

  3. 2019Hdu多校第三场:1007 Find the answer(multiset 解法)

    原题链接: Find the answer c++中,multiset是库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数 ...

  4. PTA 1154 Vertex Coloring

    题目链接:1154 Vertex Coloring A proper vertex coloring is a labeling of the graph's vertices with colors ...

  5. SELECT COUNT语句

    数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查. 在数据库的增删改查操作中,使用最频繁的就是查询操作.而在所有查询操作中,统计数量操作更 ...

  6. Jenkins windows 执行批量cmd命令XCOPY 提示'XCOPY' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    由于Jenkins没有配置环境变量造成 打开Jenkins=>Manage Jenkins =>Configure System =>全局属性 新增全局变量 健: Path 值: % ...

  7. NGUI的widget的使用

    一,我们看看widget有什么属性,如下图: 二,Pivot是什么意思? 我们都知道在Untiy3D中有一个中央坐标点,而这个Pivot这个就是选择控件的某一个点与中央坐标点定位. 如下图区别: 当你 ...

  8. Bootstrap-带语境色彩的面板

    使用语境状态类 panel-primary.panel-success.panel-info.panel-warning.panel-danger,来设置带语境色彩的面板,实例如           ...

  9. vue中监听返回键

    问题:在项目中,我们常常有需求,当用户在填写表单时,点击返回的时候,我们希望加一个弹窗,确认离开吗,确认将保存为草稿 解决方案:利用 H5的 pushstate(个人理解为增加页面栈)特性与onpop ...

  10. IDEA中web项目maven项目手动打war包的方式

    手动打包 https://blog.csdn.net/ibigboy/article/details/90287963 tomcat部署web项目方法 https://www.cnblogs.com/ ...