python socket TCP UDPの簡単な例

2555 ワード

pythonのsocketで、簡単にTCPとUDPの例を作りました
 
TCP
 
Server:
 
import socket

class TcpServer():
    def __init__(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.bind(("", 9999))
        self.socket.listen(5)

    def start(self):
        while True:
            sock, address = self.socket.accept()
            print str(address) + " connected!"
            sock.send("hello world")
            sock.close()

TcpServer().start()

 
 
Client:
 
import socket


class TcpClient():
    def __init__(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.connect(("127.0.0.1", 9999))

    def send(self):
        #          
        value = self.socket.recv(10)
        print value


TcpClient().send()

 
 
UDP
 
Server:
 
import socket


class UdpServer():
    def __init__(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.socket.bind(("", 9999))

    def start(self):
        while True:
            data, address = self.socket.recvfrom(2048)
            print "address:" + str(address) + " data:" + data
            self.socket.sendto("hello world", address)


UdpServer().start()

 
Client:
 
import socket

class TcpClient():
    def __init__(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.socket.connect(("127.0.0.1", 9999))

    def send(self):
        self.socket.send("this is client")
        result = self.socket.recv(1024)
        print result


class TcpClient2():
    def __init__(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

    def send(self):
        self.socket.sendto("this is client", ("127.0.0.1", 9999))
        result = self.socket.recv(1024)
        print result

#       
#TcpClient().send()
TcpClient2().send()