TCP 연결 기반 socket 소켓 프로그래밍

2757 단어

TCP 프로토콜 기반 소켓 프로그래밍(단순)


서비스 단말기

import socket

server = socket.socket()
server.bind(
    ('127.0.0.1', 9999)
)
server.listen(5)

conn, addr = server.accept()
print(addr)

data = conn.recv(1024).decode('utf-8')
print(data)

conn.send(' : '.encode('utf-8'))
conn.close()

server.close()

클라이언트

import socket

client = socket.socket()
client.connect(
    ('127.0.0.1', 9999)
)

client.send(' : '.encode('utf-8'))


data = client.recv(1024).decode('utf-8')
print(data)

client.close()

TCP 프로토콜 기반 소켓 프로그래밍(복잡)


서비스 단말기

import socket

server = socket.socket()
server.bind(
    ('127.0.0.1', 9999)
)
server.listen(5)

conn, addr = server.accept()
print(addr)

while True:
    #  
    data = conn.recv(1024).decode('utf-8')
    print(data)
    if data == 'q':
        break
    send_msg = input('server--->client: ').encode('utf-8')
    conn.send(send_msg)

conn.close()
server.close()

클라이언트

import socket

client = socket.socket()
client.connect(
    ('127.0.0.1', 9999)
)

while True:
    send_msg = input('client---> server:')
    client.send(send_msg.encode('utf-8'))
    if send_msg == 'q':
        break

    #  
    data = client.recv(1024).decode('utf-8')
    print(data)

client.close()

서비스 단말기는 여러 고객을 서비스한다


서비스 단말기

import socket

server = socket.socket()
server.bind(
    ('127.0.0.1', 8888)
)
server.listen(5)  #  , 

while True:
    conn, addr = server.accept()
    print(addr)

    while True:
        try:
            data = conn.recv(1024).decode('utf-8')
            print(data)

            # mac\linux bug:b''
            if len(data) == 0:
                continue

            if data == 'q':
                break
            send_msg = input('server--->client:').encode('utf-8')
            conn.send(send_msg)
        except Exception as e:
            print(e)
            break

    conn.close()

클라이언트

import socket

client = socket.socket()
client.connect(
    ('127.0.0.1', 8888)
)

while True:
    send_msg = input('client--->server:')
    client.send(send_msg.encode('utf-8'))
    if send_msg == 'q':
        break

    data = client.recv(1024).decode('utf-8')
    print(data)

client.close()

좋은 웹페이지 즐겨찾기