자바
서버
try{
ServerSocket serversocket = new ServerSocket(8080);
Socket socket = serversocket.accept();
// 메시지 받기
InputStream in = socket.getInputStream();
DataInputStream dis = new DataInputStream(in);
System.out.println("Received: " + dis.readUTF());
dis.close();
socket.close();
serversocket.close();
}
catch(Exception e){
e.printStackTrace();
}
클라이언트
try {
Socket socket = new Socket("127.0.0.1", 8080);
// 메시지 보내기
OutputStream out = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(out);
dos.writeUTF("Hello");
dos.close();
socket.close();
}
catch(Exception e){
e.printStackTrace();
}
파이썬
서버
import socket
# AF_INET: Address Family_IPv4
# SOCK_STREAM: 연결을 유지하는 스트림 소켓
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# SOL_SOCKET 레벨: 소켓 API레벨에서 소켓 옵션 조작
# SO_REUSEADDR: 주소 유효성 검사에 사용되는 규칙 - 주소 재사용 가능
# 1: 버퍼 포인터
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
# 127.0.0.1: 자기 컴퓨터의 IPv4 IP주소, 8080: 자유로운 포트의 대표
server_socket.bind(("127.0.0.1",8080))
server_socket.listen()
client_socket, address = server_socket.accept()
print("Client address: ", address)
while True:
data = client_socket.recv(1024) # recv(버퍼 크기)
if not data:
break
print("Received data: ", data.decode())
client_socket.sendall(data)
client_socket.close()
server_socket.close()
클라이언트
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 127.0.0.1: 자기 컴퓨터의 IPv4 IP주소, 8080: 자유로운 포트의 대표
client_socket.connect(("127.0.0.1",8080))
client_socket.sendall("Hello".encode())
data = client_socket.recv(1024)
print("Received: ", data.decode())
client_socket.close()
cmd창 2개를 열어서 서버와 클라리언트를 실행시킬 수 있다.
'자바, 파이썬' 카테고리의 다른 글
[파이썬] 넘파이 - 다차원 배열 쉽게 다루기 (0) | 2022.06.22 |
---|---|
[자바, 파이썬] OpenCV (0) | 2022.06.13 |
[자바, 파이썬] 기본 문법 (0) | 2022.06.04 |
[자바, 파이썬] Regex 사용 (0) | 2022.06.03 |
[자바, 파이썬] GUI 사용 (0) | 2022.06.02 |