내가 만든 게임서버들의 패킷송수신량을 파이썬의 plotly라는 라이브러리를 통해 시각화하기 위해서 간단하게 클라이언트와 서버간 통신을 할 수 있는 프로그램이 필요했다.
서버는 스레드를 이용해 계속적으로 recv를 받는 형태, 클라이언트는 send를 통해 계속 보내는 형태로 구성하였다.
서버 코드
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from socket import * import threading
clientSockets = []; clientAddressList = []; serverSock = socket(AF_INET, SOCK_STREAM); serverSock.bind(('',9000)); serverSock.listen(5);
shutdown = False;
def recvData(connectionSocket, clientAddr): while(True): data = connectionSocket.recv(1024); print(str(clientAddr) + " : " , data.decode("utf-8") );
def StartNetwork(): while(shutdown == False): connectionSocket, clientAddr = serverSock.accept(); clientSockets.append(connectionSocket); clientAddressList.append(clientAddr); print(str(clientAddr) + " requested Connection!! " ); threading.Thread(target = recvData, args=(connectionSocket,clientAddr)).start();
StartNetwork();
|
|
클라 코드
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from socket import * import threading
clientSockets = []; clientAddressList = []; serverSock = socket(AF_INET, SOCK_STREAM); serverSock.bind(('',9000)); serverSock.listen(5);
shutdown = False;
def recvData(connectionSocket, clientAddr): while(True): data = connectionSocket.recv(1024); print(str(clientAddr) + " : " , data.decode("utf-8") );
def StartNetwork(): while(shutdown == False): connectionSocket, clientAddr = serverSock.accept(); clientSockets.append(connectionSocket); clientAddressList.append(clientAddr); print(str(clientAddr) + " requested Connection!! " ); threading.Thread(target = recvData, args=(connectionSocket,clientAddr)).start();
StartNetwork();
|
|
'서버프로그래밍' 카테고리의 다른 글
| React-Native를 이용한 IDE 영상 (0) | 2019.06.27 |
|---|---|
| WINDOW SOCKET APPLICATION 함수에 대해서. (0) | 2019.04.06 |
| 서버분산 동영상 1차. (0) | 2019.03.10 |
| 졸업작품 - 분산 서버를 위한 서버간 터미널 통신 영상 (0) | 2018.12.17 |
| 객체 초기화에 memset을 이용한 방법의 위험성.. (0) | 2018.11.03 |