对于tcp server 端的创建而言, 分为如下步骤:

 
1,创建socket对象(socket):其中俩个参数分别为
    Address Family(如AF_INET为ipv4),AF_INET6为ipv6,AF_UNIX为unix域协议簇). 

    socket类型(如SOCK_STREAM为tcp,SOCK_DGRAM为udp)
2,绑定服务器地址(bind) : 参数为服务器地址二元组 也就是套接字 
3,监听(listen): 参数为允许的连接数 
4,等待请求(accpet): 建立一个连接,等待客户端
5,接收数据(recv,recvfrom ,recvfrom_into ,recv_into)  
6,发送数据(send ,senfall ,sendto) 
7,关闭连接(close) 
 
 
代码: 
 
#! /usr/bin/python
# -*- coding: utf-8 -*-
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_address = ("127.0.0.1",12345)
print "Staring up on %s:%s" % server_address
sock.bind(server_address)
sock.listen(5) while True:
print "waiting .........."
connetion,client_address = sock.accept()
try:
print "Connection from ",client_address
data = connetion.recv(1024)
print "Receive '%s'" % data
finally:
connetion.close()
 

对于tcp client端而言 , 分为以下几个步骤:

1,创建socket对象( socket) : 同server端
2,连接服务器(connect) : 参数为服务器地址二元组
3,发送和接收数据: 同server端
4,关闭连接 : 同server端
 
 
代码: 
#! /usr/bin/python
# -*- coding: utf-8 -*-
import socket
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def check_tcp_status(ip,port): sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_address = (ip,port)
print "connecting to %s:%s" % server_address,port
sock.connect(server_address) message = raw_input("pleas input: ")
print "Sending '%s'" % message
sock.sendall(message)
print "Closing socket"
sock.close() if __name__ == "__main__":
print check_tcp_status("127.0.0.1",12345)
 

python socket 模拟tcp通讯的更多相关文章

  1. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  2. C# Socket的TCP通讯

    Socket的TCP通讯 一. socket的通讯原理 服务器端的步骤如下. (1)建立服务器端的Socket,开始侦听整个网络中的连接请求. (2)当检测到来自客户端的连接请求时,向客户端发送收到连 ...

  3. Python socket模拟HTTP请求

    0x00 起 最近在做一个对时间要求比较高的扫描器,需要封装一下SOCKET模拟HTTP发包的一些常用函数.简单的说,就是重写一下requests中的get.post方法. 今天在写的时候,遇到一枚很 ...

  4. [C#]手把手教你打造Socket的TCP通讯连接(一)

    本文章将讲解基于TCP连接的Socket通讯,使用Socket异步功能,并且无粘包现象,通过事件驱动使用. 在编写Socket代码之前,我们得要定义一下Socket的基本功能. 作为一个TCP连接,不 ...

  5. 170925_1 Python socket 创建TCP的服务器端和客户端

    [Python版本]3.6 [遇到的问题] 客户端和服务器端都遇到:TypeError: a bytes-like object is required, not 'str' [解决方案] 参考:ht ...

  6. C# Socket的TCP通讯 异步 (2015-11-07 10:07:19)转载▼

    异步 相对于同步,异步中的连接,接收和发送数据的方法都不一样,都有一个回调函数,就是即使不能连接或者接收不到数据,程序还是会一直执行下去,如果连接上了或者接到数据,程序会回到这个回调函数的地方重新往下 ...

  7. Python socket(TCP阻塞模式)基础程式

    前置知识:Python基础语法,socket库 tips: 1. 默认HOST_IP:127.0.0.1 2. 默认HOST_PORT:7676 参考代码: 1. 客户端程式 #!/usr/bin/e ...

  8. C++ 利用socket实现TCP,UDP网络通讯

    学习孙鑫老师的vc++深入浅出,有一段时间了,第一次接触socket说实话有点儿看不懂,第一次基本上是看他说一句我写一句完成的,第二次在看SOCKET多少有点儿感觉了,接下来我把利用SOCKET完成T ...

  9. 【socket】TCP 和 UDP 在socket编程中的区别

    一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UD ...

随机推荐

  1. google python/c++ code style naming

    python: Guidelines derived from Guido's Recommendations Type Public Internal Packages lower_with_und ...

  2. MVC3 IIS7部署记录

    环境 系统:Win7 IIS:IIS7 开发工具:VS2010 MVC版本:ASP.NET MVC 3.0 注意 1.在部署MVC应用之前,一定要确保你的程序BIN文件夹下面是否包含 System.W ...

  3. WordPress Lazy SEO插件lazyseo.php脚本任意文件上传漏洞

    漏洞名称: WordPress Lazy SEO插件lazyseo.php脚本任意文件上传漏洞 CNNVD编号: CNNVD-201309-446 发布时间: 2013-09-26 更新时间: 201 ...

  4. 【转】SourceTree的简单使用

    原文网址:http://blog.csdn.net/u011439289/article/details/42126507 今天开始参与公司项目的代码编写,公司内部采用的是gitlib,所以用到了So ...

  5. OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)[转]

    在使用OracleParameters时,CommandText 中的参数要以":"开头,不能包含@等特殊字符.而在其它地方引用到此参数时可以不必加上":",程 ...

  6. bootstrap easyUI 的选型

    最近开始搭建新的项目后台,开始在Bootstrap 和 EasyUI两个框架上选型,个人还是倾向于Bootstrap,毕竟这个响应式效果是个趋势,并且可以自动兼容不同的屏幕分辨率和设备.

  7. [GRYZ2014]最大连续子序列的和

    求给定序列的最大连续子序列和. 输入:第一行:n(n<100000)             第二行:n个整数[-3000,3000]. 输出:最大连续子序列的和. 样例: 输入: 7 -6 4 ...

  8. Linux 新手常用命令

    ubuntu的root用户默认是禁止的,需要手动打开才行 事实上ubuntu下的所有操作都用不到root用户,由于sudo的合理使用,避免了root用户下误操作而产生的毁灭性问题 root账号启用方法 ...

  9. < < < 2013年国家集训队作业 > > >

    完成题数/总题数:  道/37道 1.  A1504. Book(王迪): 数论+贪心   ★★☆        2013中国国家集训队第二次作业 2.  A1505. 树(张闻涛): 倍增LCA+可 ...

  10. 一个简单的DELPHI程序注册码设计 .

    当你辛辛苦苦用DELPHI做好了一个你认为十分不错的程序,你是否想把它发布出去成为共享软件呢  做为一个共享软件,注册码肯定是少不了的,你可以通过判断程序是否注册来进行功能,时间或一些其它限制.现在就 ...