Python之Socket通信与线程

想写一个能让两个不同的主机间能进行通讯的软件??想仿造一个类似app store一样的软件???

如果你打算开发和网络有关的程序, 比如聊天软件,那么你绝对绕不过网络编程这一关,而socket通信就是网络编程的一个重点。

1. Socket的定义

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。(引自百度百科)Emmmm... 想了解理论部分的同学我建议你们到其他文章中查阅相关内容,咱们重点说说实战方面吧

2. 一个简单的Socket通信例子

# -*-coding:utf-8 -*-
#   Server端
#   Server.py
import socket

HOST = '127.0.0.1'
PORT = 33333
ADDR = (HOST,PORT)
#  AF_INET 表示连接使用ipv4地址族  SOCK_STREAM表示用流式套接字
tcpSerSock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpSerSock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# 将套接字绑定该地址
tcpSerSock.bind(ADDR)
# 参数1表示阻塞模式  0表示非阻塞模式  默认为阻塞模式
tcpSerSock.setblocking(1)
# 开始监听TCP传入连接。参数指定在拒绝连接之前,操作系统可以挂起的最大连接数量。
tcpSerSock.listen(5)

print "Waiting connect..."
# tcpCliSock 是该链接的套接字,addr表示对方的地址
tcpCliSock, addr = tcpSerSock.accept()
# 设置超时时间
tcpCliSock.settimeout(20.0)
print '...connected from', addr
# recv(param)用于接收对方发送的数据 param为缓冲区大小
data = tcpCliSock.recv(1024)
print data
tcpCliSock.sendall("here is server")
# 关闭套接字
tcpCliSock.close()

# -*- coding: utf-8 -*-
# client端
#  Client.py
import socket

address = ('127.0.0.1', 33333)
s = soc
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值