首页 > 代码库 > 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,有HOSTPORT2个参数

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.senddata)发送一个套接字数据

 

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()

#注意:另外几个点:服务端的套接字没有recvdata),所以想接受和发送数据就通过accept()返回的套接字对象来进行操作即可

python-socket基础学习2