블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2024.4
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 30

공지사항

태그목록

최근에 올라온 글

Python 2.x 대에서 3.x 대로 오면서 달라진 것이 있었습니다.

socket send() 함수와 recv()함수에서 주고받는 데이터 형식이 무조건 바이트 형식으로 바뀌었습니다.

그래서 기존 2.x 소스를 약간 수정하여야 합니다.

참고한 소스는 http://www.prasannatech.net/2008/07/socket-programming-tutorial.html 에 있는 파이썬 소스들입니다.

수정된 소스들은 다음과 같습니다.
TCP Server Code:
# TCP server example
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 5000))
server_socket.listen(5)

print ("TCPServer Waiting for client on port 5000")

while 1:
client_socket, address = server_socket.accept()
print ("I got a connection from ", address)
while 1:
data = input('SEND( TYPE q or Q to Quit):')
if(data == 'Q' or data == 'q'):
client_socket.send (data.encode())
client_socket.close()
break;
else:
client_socket.send(data.encode())
data = client_socket.recv(512).decode()
if(data == 'q' or data == 'Q'):
client_socket.close()
break;
else:
print ("RECEIVED:" , data)
break;
server_socket.close()
print("SOCKET closed... END")

TCP Client Code:
# TCP client example
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("www.hsd.or.kr", 5000))
while 1:
    data = client_socket.recv(512).decode()
    if ( data == 'q' or data == 'Q'):
        client_socket.close()
        break;
    else:
        print ("RECEIVED:" , data)
        data = input ( "SEND( TYPE q or Q to Quit):" )
        if ( data == 'q' or data == 'Q'):
            client_socket.send(data.encode())
            client_socket.close()
            break;
        else:
            client_socket.send(data.encode())
print ("socket colsed... END.")
Posted by 훅크선장
, |