내가 만든 게임서버들의 패킷송수신량을 파이썬의 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();

 

Colored by Color Scripter

 

클라 코드

 

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();

 

Colored by Color Scripter

+ Recent posts