Python网络编程

TCP服务端与客户端

# -*- coding: utf-8 -*-
import socket
from time import ctime


class TcpServer(object):

    def __init__(self, host='127.0.0.1', port=8888, bufsiz=1024, listen=10):
        self.tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.BUFSIZ = bufsiz
        self.ADDR = ((host, port))
        self.tcp_server_socket.bind(self.ADDR)
        self.tcp_server_socket.listen(listen)

    def conn(self):
        while True:
            print('TCP conn start')
            tcp_listen_socket, addr = self.tcp_server_socket.accept()
            print('...connected from ', addr)
            while True:
                data = tcp_listen_socket.recv(self.BUFSIZ)
                if not data:
                    break

                data = data.decode('utf-8')
                respMsg = '[%s] %s' % (ctime(), data)
                tcp_listen_socket.send(bytes(respMsg, 'utf-8'))

            tcp_listen_socket.close()

    def close(self):
        self.tcp_server_socket.close()


if __name__ == '__main__':
    ts = TcpServer()
    ts.conn()
    # ts.close()
# -*- coding: utf-8 -*-


import socket


class TcpClient(object):

    def __init__(self, host='127.0.0.1', port=8888, bufsiz=1024):
        self.BUFSIZ = bufsiz
        self.ADDR = ((host, port))
        self.tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    def conn(self):
        self.tcp_client_socket.connect(self.ADDR)
        while True:
            data = input(">> ")
            if not data:
                break
            self.tcp_client_socket.send(bytes(data, 'utf-8'))
            data = self.tcp_client_socket.recv(self.BUFSIZ)
            if not data:
                break

            print(data.decode('utf-8'))

    def close(self):
        self.tcp_client_socket.close()


if __name__ == '__main__':
    tc = TcpClient()
    tc.conn()

UDP服务端与客户端

# -*- coding: utf-8 -*-


import socket
from time import ctime


class UdpServer(object):

    def __init__(self, host='127.0.0.1', port=8888, bufsiz=1024, listen=10):
        self.udp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.BUFSIZ = bufsiz
        self.ADDR = ((host, port))
        self.udp_server_socket.bind(self.ADDR)

    def conn(self):
        while True:
            print('UDP conn start')
            data, addr = self.udp_server_socket.recvfrom(self.BUFSIZ)
            data = data.decode('utf-8')
            respMsg = '[%s] %s' % (ctime(), data)
            self.udp_server_socket.sendto(bytes(respMsg, 'utf-8'), addr)
            print('...received from and return to:', addr)

    def close(self):
        self.udp_server_socket.close()


if __name__ == '__main__':
    us = UdpServer()
    us.conn()
# -*- coding: utf-8 -*-
import socket


class UdpClient(object):

    def __init__(self, host='127.0.0.1', port=8888, bufsiz=1024):
        self.BUFSIZ = bufsiz
        self.ADDR = ((host, port))
        self.udp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    def conn(self):
        while True:
            data = input(">> ")
            if not data:
                break
            self.udp_client_socket.sendto(bytes(data, 'utf-8'), self.ADDR)
            data, addr = self.udp_client_socket.recvfrom(self.BUFSIZ)
            if not data:
                break

            print(data.decode('utf-8'))

    def close(self):
        self.udp_client_socket.close()


if __name__ == '__main__':
    uc = UdpClient()
    uc.conn()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值