python之TCP编程

客户端编程

#-*- coding:utf8 -*-
import socket

#创建一个socket
#AF_INET指定使用IPv4协议,如果要用更先进的IPv6,就指定为AF_INET6。SOCK_STREAM指定使用面向流的TCP协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#建立连接
s.connect((‘www.sina.com.cn‘, 80))
#发送数据(http请求)
s.send(‘GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\n\r\n‘)
#接收数据
buffer = []
while True:
    #每次最多接受1k字节
    d = s.recv(1024)
    if d:
        buffer.append(d)
    else:
        break
data = ‘‘.join(buffer)
#关闭连接
s.close()
#分离http头和主体
header, html = data.split(‘\r\n\r\n‘, 1)
print header
#把接受到的数据写入文件
with open(‘D:\\sina.html‘, ‘wb‘) as f:
    f.write(html)

服务器编程

服务器端

#-*- coding:utf8 -*-
import socket, threading, time

def tcplink(sock, addr):
    print ‘Accept new connection from %s:%s...‘ %addr
    sock.send(‘Welcome‘)
    while True:
        data = sock.recv(1024)
        time.sleep(1)
        if data == ‘exit‘ or not data:
            break
        sock.send(‘Hello, %s‘ %data)
    sock.close()
    print ‘Connection from %s %s‘ %addr

#创建socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#监听端口
s.bind((‘127.0.0.1‘, 9999))
#传入的参数指定等待连接的最大数量
s.listen(5)
print ‘Waiting for connection...‘
while True:
    #接受一个新连接
    sock, addr = s.accept()
    #创建新线程来处理TCP连接
    t = threading.Thread(target=tcplink, args=(sock,addr))
    t.start()

客户端

#-*- coding:utf8 -*-
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((‘127.0.0.1‘, 9999))
print s.recv(1024)
for data in [‘David‘, ‘Yt‘, ‘Amenda‘]:
    s.send(data)
    print s.recv(1024)
s.send(‘exit‘)
s.close()

2015-05-11

时间: 2024-11-05 19:04:09

python之TCP编程的相关文章

Python的TCP编程

目录 前言 server.py client.py 测试 前言 操作系统win10 时间2019年02月 Python版本: Python 3.5.2 参考网址1--廖雪峰PythonTCP编程 server.py # -*- coding: utf-8 -*- import socket import threading import time # 每个连接都必须创建新线程(或进程)来处理,否则, # 单线程在处理连接的过程中,无法接受其他客户端的连接 def tcplink(sock, ad

通过python实现TCP编程

伪代码:ss = socket() #创建服务器套接字ss.bind() #把地址绑定到套接字上ss.listen() #监听连接(最大连接数)info_loop: #服务器无限循环 cs = ss.accept() #接受客户端连接comm_loop: #通信循环 cs.recv()/cs.send() #对话(接收/发送) cs.close() #关闭客户端套接字ss.close() #关闭服务器 所有的套接字都用socket.socket()函数来创建,服务器需要"坐在某个端口上"

python中的TCP编程学习

今天看了一下关于python的TCP编程. 发现思路和其他语言(比如java)思路基本上差点儿相同. 先看client.基本过程例如以下: 第一步:创建一个socket 第二步:建立连接 第三步:发送数据 第四步:读取从server发送过来的数据 第五步:关闭连接 第六步:对收到的数据进行处理 以下为python的TCP编程的client程序的一个小样例.java中关于网络编程的博文请看这里 #coding:utf-8 #TCP编程的client程序 #编写client程序与其他语言(比如jav

python网络编程之TCP编程

TCP编程 模拟客户端和服务器端进行通信.其中要素为ip地址和端口. 客户端: 建立socket对象,并且设置为TCP模式 用connect()方法设置端口和ip地址,需要传入一个set. 可以进行接受和发送的操作 关闭socket连接 服务器端: 因为一个服务器打开一个固定端口进行监听,但是可能响应不同的客户端,所以可以定义不同的进程序进行处理. 建立socket对象 绑定IP地址和端口 监听 利用进程响应不同的客户端请求,可以发送和接受数据等操作 关闭socket连接 实例: 客户端: im

Python:TCP编程基础

# TCP编程# - 创建socket# - 连接服务器# -发送数据# - 接受数据# - 关闭socket# import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('www.baidu.com',80)) s.send(b'GET/HTTP/1.1/r\nHost:www.baidu.com\r\nCpnnection:close\r\n\r\n')buf = [] while True: d

python 入门 - 函数式编程

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000     函数 定义函数 def my_abs(x): if x >= 0: return x else: return -x result =my_

Python 3 socket编程

Python 3 socket编程 一 客户端/服务器架构 互联网中处处是C/S架构 1.C/S结构,即Client/Server(客户端/服务器)结构 2.在互联网中处处可见c/s架构 比如说浏览器,在线视频,各种社交软件. C/S架构与socket的关系: 我们学习socket就是为了c/s架构的开发 学习socket一定要先学习互联网协议: 1.如何基于socket编程,来开发一款自己的C/S架构软件 2..C/S架构的软件(软件属于应用层)是基于网络进行通信的 3.网络的核心即一堆协议,

Python基础-socket编程

一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的通信. 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上. 由于你的电脑上可能不止浏览器,还有QQ.Skype.Dropbox.邮件客户端等,不同的程序连接的别的计算机也会不同,所以,更确切地说,

PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获--补充

荒废了一个多月了,重新捡起来,手生了不少.发现在<4.1下>的文章里没有 提到pcap库,实在是不应该. 在网络数据分析的工具中,tcpdump绝对是大名鼎鼎,tcpdump底层是libpcap库,由C语言编写. Pcapy模块则是基于libpcap的Python接口.pcapy在github上的项目地址为: https://github.com/CoreSecurity/pcapy. 下面我们来看看如何使用pcapy实现数据包的捕获. #!/usr/bin/python import pca