Python socket(TCP阻塞模式)基础程式
前置知识:Python基础语法,socket库
tips:
1. 默认HOST_IP:127.0.0.1
2. 默认HOST_PORT:7676
参考代码:
1. 客户端程式
#!/usr/bin/env python
# encoding: utf-8
import socket
import os
import sys
import time
import traceback
reload(sys)
sys.setdefaultencoding("utf-8")
def SocketInit():
try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except Exception as e:
print "[-]Socket Create Error"
sys.exit(-1)
else:
print "[*]Socket Create Success"
return s
def Conn(s,host,port):
while 1:
try:
s.connect((host,port))
except Exception as e:
print "[-]Socket Connect Error"
#traceback.print_exc()
time.sleep(2)
#sys.exit(-1)
else:
print "[*]Socket Connect Success"
break
def main():
host = "127.0.0.1"
port = 7676
sC = SocketInit()
Conn(sC, host, port)
print sC.recv(1024)
try:
while 1:
Str_buffer = raw_input(host+":"+str(port)+">")
try:
sC.send(Str_buffer)
except Exception as e:
print "[-]Can not send Data"
else:
recv_buffer = sC.recv(1024)
if not recv_buffer:
print "[-]Server is Off"
else:
print recv_buffer
except KeyboardInterrupt:
sC.close()
sys.exit(0)
if __name__ == '__main__':
main()
2. 服务端程式
#!/usr/bin/env python
# encoding: utf-8
import socket
import os
import sys
import time
reload(sys)
sys.setdefaultencoding("utf-8")
def SocketInit():
try:
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
except Exception as e:
print "[-]Socket Create Error"
sys.exit(-1)
else:
print "[*]Socket Create Success"
return s
def BindSocket(s,host,port):
try:
s.bind((host,port))
except Exception as e:
print "[-]Socket Bind Error"
sys.exit(-1)
else:
print "[*]Socket Bind Success"
def main():
host = "127.0.0.1"
port = 7676
sS = SocketInit()
BindSocket(sS, host, port)
sS.listen(1)
try:
print "[+]Waiting for Connect ..."
sC,addr = sS.accept()
except Exception as e:
print "[-]Server Accept Error"
sys.exit(-1)
sC.send("[*]Welcome to PeterZ-Server")
print "[*]Connect to %s:%d" % (addr[0],addr[1])
while 1:
try:
Str_buffer = sC.recv(1024)
Send_buffer = "%s:%s(%s)>%s" % (addr[0],addr[1],time.ctime(),Str_buffer)
sC.send(Send_buffer)
print Send_buffer
except KeyboardInterrupt:
sS.close()
sC.close()
sys.exit(0)
except Exception:
print "[-]Client is down"
sys.exit(0)
if __name__ == '__main__':
main()
Python socket(TCP阻塞模式)基础程式的更多相关文章
- Python Socket单线程+阻塞模式
Python之旅]第五篇(二):Python Socket单线程+阻塞模式 python Socket单线程 Socket阻塞模式 串行发送 摘要: 前面第五篇(一)中的一个Socket例子其实就是 ...
- c++之socket,阻塞模式
这里描述下socket的阻塞模式: 首先,socket有几个函数 socket() 创建socket bind() 绑定socket到一个地址 listen() 开启soket监听 accept() ...
- TCP阻塞模式开发
在阻塞模式下,在IO操作完成前,执行的操作函数将一直等候而不会立刻返回,该函数所在的进程会阻塞在这里.相反,在非阻塞模式下,套接字函数会立即返回,而不管IO是否完成,该函数所在的线程将继续运行.阻塞模 ...
- python socket非阻塞及python队列Queue
一. python非阻塞编程的settimeout与setblocking+select 原文:www.th7.cn/Program/Python/201406/214922.shtml 侧面认证Py ...
- NIO Socket非阻塞模式
NIO主要原理和适用 NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有 事件发生时,他会通知我们 ...
- 看到关于socket非阻塞模式设置方式记录一下。
关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的:我打个很简单的比方,如果你调用socket send函数时: 如果是阻塞模式下: send先比较待发送数据的长度len和套接 ...
- 简单使用SOCKET,TCP,UDP模式之间的通信
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中, ...
- 关于一个socket在阻塞模式下是否还可以使用的实验
想到一个socket在多线程模式下,是否可以同时使用的问题,比如socket A阻塞在recv,而别的线程用socket A send是否能成功,下面上实验代码 void thread_socket( ...
- python socket+tcp三次握手四次撒手学习+wireshark抓包
Python代码: server: #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socke ...
随机推荐
- hiho一下 第195周 奖券兑换[C solution][Accepted]
时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在游乐园中获得了M张奖券,这些奖券可以用来兑换奖品. 可供兑换的奖品一共有N件.第i件奖品需要Wi张奖券才能兑换到, ...
- Fastjson <=1.2.24-反序列化-任意命令执行
漏洞分析 https://www.secpulse.com/archives/72391.html 复现参考 https://www.cnblogs.com/hack404/p/11980791.ht ...
- 白嫖微软Azure12个月服务器
前言 Azure是微软提供的一个云服务平台.是全球除了AWS外最大的云服务提供商.Azure是微软除了windows之外另外一个王牌,微软错过了移动端,还好抓住了云服务.这里的Azure是Azure国 ...
- 推荐!!! Markdown图标索引网站
作者:三十三重天 博客: http://www.zhouhuibo.club 我们在观察别人的文章时候时,总能看到很多有趣的图标,像是这样
- C# 应用 - 多线程 2) Thread 和 ThreadPool
IEnumerable<int> intList = Enumerable.Range(1, 15); foreach (int i in intList) { ThreadPool.Qu ...
- idea添加本地文件约束(DTD)
当我们做 xml 文件配置的时候,需要对其进行约束的配置 例如: hibernate 如果我们在联网的情况下是可以不添加配置文件约束的,红框内的 URL 会自动帮我们从网络上加载约束文件,但是没有网络 ...
- Elasticsearch 复合查询——多字符串多字段查询
前言 有时我们在搜索电影的时候,包含了多个条件,比如主演是周星驰,打分8分以上,上映时间是1990年~2001年的,那么Elasticsearch又该如何帮我们做查询呢?这里我们可以用 bool 查询 ...
- Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 【递推】
一.题目 D2. RGB Substring (hard version) 二.分析 思路一开始就想的对的,但是,用memset给数组初始化为0超时了!超时了! 然后我按照题解改了个vector初始化 ...
- 一个通用驱动Makefile-V2-支持编译多目录
目录 前言 1. 特点 2. 分析 2.1 简要原理 2.2 具体分析 3. 源码 前言 该 Makefile 已经通过基于内核 Linux5.4 版本验证通过. 因为编写这通用驱动 Makefile ...
- 关于mysql事物和特性
事务的 四个特征(ACID) 事务具有四个特征:原子性( Atomicity ).一致性( Consistency ).隔离性( Isolation )和持续性( Durability ).这四个特性 ...