首页 > 代码库 > python-socket基础学习2
python-socket基础学习2
# -*- coding: utf-8 -*-
# python:2.x
__author__ = ‘Administrator‘
#socket对象分服务器和客户端
#服务器的主要步骤,如下
"""
1初始化一个套接字
socket() 2个参数,一个是AF_INET:socketfamily,另一个是SOCK_STREAM表示tcp连接
bind(addr)绑定一个地址,这里的addr是一个map,有HOST和PORT2个参数
listem()监听请教,表示最多能监听几个请求
accept()接受套接字,返回客户端的一个套接字对象和地址,然后通过旅客个返回对象进行操作,包括消息反馈等
close()关闭套接字资源,包括关闭接受客户套接字对象和服务器套接字对象
"""
#例如,我这边就不在运行程序了
from socket import *
from time import *
def serv(HOST=‘‘,PORT=12456):
ADDR=(HOST,PORT)
tcps=socket(AF_INET,SOCK_STREAM)
try:
tcps.bind(ADDR)
tcps.listen(5)
except Exception,e:
print ‘error:%s‘%(e)
while True:
print ‘waiting for connection...‘
tcpli,addr=tcps.accept()
print ‘connection form...‘,addr
while True:
BUFSIZ=2048
data=http://www.mamicode.com/tcpli.recv(BUFSIZ)
if not data:
break
tcpli.send(‘[%s],%s‘%(ctime(),data))
tcpli.close()
tcps.close()
#客户端:
"""
1.同样初始化一个套接字:
2.建立和服务端的连接:可以有connect()和create_connection()两个函数,有两个参数:第一个地址addr,另外一个就是timeout
3.send(data)发送一个套接字数据
4.recv()接受一个套接字数据。参数可以是接受数据量大小
5.close()
"""
import socket
HOST=‘localhost‘
PORT=21568
BUFSIZ=1024
ADDR=(HOST,PORT)
tcpclisock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcpclisock.connect(ADDR)
while True:
data=http://www.mamicode.com/raw_input(‘>‘)
if not data:
break
tcpclisock.send(data)
data=http://www.mamicode.com/tcpclisock.recv(BUFSIZ)
if not data:
break
print data
tcpclisock.close()
#注意:另外几个点:服务端的套接字没有recv(data),所以想接受和发送数据就通过accept()返回的套接字对象来进行操作即可
python-socket基础学习2