python3 网络编程

Socket

  • socket()函数
    • 创建套接字,语法:socket.socket([family[,type]]])
    • 参数:
      • family:套接字家族可以使用AF_UNIX或者AF_INET
      • type: 套接字类型可以根据是面向连接还是非链接分为SOCK_STREAM或SOCK_DGRAM
      • protocol: 一般不填默认0.

Socket对象(内建)方法

  • 服务器端
    • bind()
    • listen()
    • accept()
  • 客户端
    • connect()
    • connect_ex()
  • 公用
    • recv()
    • send()
    • sendall()
    • recvfrom()
    • sendto()
    • close()
    • getsocketname()
    • getpeername()
    • setsockopt(level,optname,value)
    • getsockopt(level,optname[.buflen])
    • settimeout(timeout)
    • gettimeout()
    • fileno()
    • setblocking(flag)
    • makefile()

服务器

__School__ = '河北大学'

__ProductName__ = 'PyCharm'

__Project__ = 'Pyproject'

__Time__ = '2019-05-09 '

import socket
import sys

class Main(object):

    def __init__(self):
        pass

    def main(self):
        serverSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        host=socket.gethostname()

        port=8001
        serverSocket.bind((host,port))

        serverSocket.listen(5)

        while True:
            clientSocket,add=serverSocket.accept()

            print('连接地址:%s'%str(add))

            msg='欢迎来到源域'+'\r\n'

            clientSocket.send(msg.encode('utf8'))

            clientSocket.close()
        pass


if __name__ == '__main__':
    Main().main()

客户端


__School__ = '河北大学'

__ProductName__ = 'PyCharm'

__Project__ = 'Pyproject'

__Time__ = '2019-05-09 '

import socket
import sys

class Main(object):

    def __init__(self):
        pass

    def main(self):
        clientSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

        host=socket.gethostname()

        port=8001

        clientSocket.connect((host,port))

        msg=clientSocket.recv(1024)
        clientSocket.close()

        print(msg.decode('utf8'))
        pass


if __name__ == '__main__':
    Main().main()

服务器端

在这里插入图片描述

客户端

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值