socket的类型及其方法:http://blog.youkuaiyun.com/rebelqsp/article/details/22109925


TCP编程(服务端):

     1.导入模块

    import socket

     2,创建socket 对象, socket 是一个类,

    sock = socket.socket(socket.family,socket.type)

    参数,

                socket_family

                    socket.AF_INET  适用网络协议的传播, ipv4

                    socket.AF_UNIX  使用与 unix 系统内部传输,

                    socket.AF_INET6                    ipv6

                socket_type

                    socket.SOCK_STREAM  TCP协议

                    socket.SOCK_DGRAM   UDP 协议

     3.绑定 ip 和端口

            bind 当中需要一个双元素元组,第一个元素为ip,第二个为端口

            ip 为空,则代表绑定所 IP

                类似手机卡,绑定是自己的手机号,

            端口 65535 每台计算机有65535 个端口,

                前一千个是计算机内部占用的,

    sock.bind(('',8000))

    sock.bind(('192.168.1.134',8000))

     4.监听端口

            监听端口的最大数量,

            在国内,若人口大量聚集,造成监听端口满,会产生手机满格信号,但是打不出去电话的问题,

    sock.listen(5)

    5.接受连接

    con, add = sock.accept()

        accept  con 接受sock对象,接受对方发送的信息

                 add ip 识别

        6.接受信息与发送信息

    print add,"is connected" 那个ip 号登陆了你的服务端

    print con.recv(512)  只属于TCP 的一个方法,接受信息的最大值,

                            单位字节

    con.send("hello , I am your server")

                         回复给客户端的信息

     

    6.关闭套接字

    sock.close()

TCP编程(客户端):

    1.导入模块

    import socket

    2.创建socket 对象

                客户端 服务端的样式,等等必须一致,

    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    3.连接服务器

    sock.connect(("服务器的 ip",8000))

    4.接受信息与发送信息

    sock.send("hello I am your user")

    print sock.recv(512)

    5.关闭 socket

    sock.close()

UDP编程(服务端):

    

    #coding:utf8

        1.导入模块

    import socket

    

    def srvFunc():

            2.创建socket 对象

        skt = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

            3.绑定 ip 和端口

        skt.bind(("127.0.0.1",1111))

        while 1:

                4.接受信息与发送信息

            data,addr = skt.recvfrom(5000)

            print(data)

            skt.sendto('roger that',addr)

UDP编程(客户端):

    #coding:utf8

        1.导入模块

    import socket

    def cltFunc():

            2.创建socket 对象

        skt = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

        print('客户端socket创建完毕')

        while 1:

            data = raw_input("请输入:")

                3.接受信息与发送信息

            skt.sendto(data,("127.0.0.1",1111))

            data,addr = skt.recvfrom(4000)

            print(data)

    cltFunc()