클라이언트 작업 day26

1. TCP 세 방향 핸드 셰이크를 마련, 네 개의지도를 흔들었다

세 방향 핸드 셰이크

IMG

흔들며 네

IMG

2. 원격 TCP CMD 프로그램의 개발을 바탕으로

클라이언트가 서버에 연결 한 후 서버에 명령을 보낼 수 있습니다
, 성공적으로 실행 여부에 관계없이 명령을받은 후 수행하는 서버에 관계없이 실행 여러 번, 결과는 클라이언트에 반환됩니다

주 : 서브 프로세스 모듈을 이용하여 명령 실행 시스템이 완성된다.

서버

from socket import *
import subprocess

server=socket(AF_INET,SOCK_DGRAM)
server.bind(('127.0.0.1',9003))

while True:
    #收消息
    cmd,addr=server.recv(1024)
    print('用户命令----->',cmd)

    #逻辑处理
    res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stderr=subprocess.PIPE,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
    stderr=res.stderr.read()
    stdout=res.stdout.read()

    #发消息
    server.sendto(stderr,addr)
    server.sendto(stdout,addr)
server.close()

클라이언트

from socket import *

client=socket(AF_INET,SOCK_DGRAM)

while True:
    msg=input('>>: ').strip()
    client.sendto(msg.encode('utf-8'),('127.0.0.1',9003))

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

추천

출처www.cnblogs.com/shin09/p/11695335.html