码迷,mamicode.com
首页 > 编程语言 > 详细

python-socket基础学习2

时间:2014-09-04 20:39:10      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:style   os   io   for   数据   cti   sp   on   c   

# -*- 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=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=raw_input(‘>‘)

    if not data:

        break

    tcpclisock.send(data)

    data=tcpclisock.recv(BUFSIZ)

    if not data:

        break

    print data

tcpclisock.close()

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

python-socket基础学习2

标签:style   os   io   for   数据   cti   sp   on   c   

原文地址:http://www.cnblogs.com/mhxy13867806343/p/3956685.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!