ping test
telnet 네트워크 연결여부 테스트
http://dveamer.github.io/backend/NetworkCheck.html
Dveamer
현실에서 살고 있지만 이상에 대한 꿈을 버리지 못한 몽상가의 홈페이지 입니다. 개인적인 기록을 주 목적으로 하며 일상과 프로그래밍 관련 글을 포스팅합니다.
dveamer.github.io
포트포워딩
https://storytown.tistory.com/14
****
VMware는 가상의 컴퓨터를 만들어주는 프로그램이다
그래서 내 로컬컴퓨터와 가상의 컴퓨터를 연결하기 위해서는 그 사이의 VMware 호스트의 Virtual Network Editor의 NAT설정을 통해 포트포워딩을 해주어야 한다.
내 노트북 IP확인 ipconfig
> VM ware 포트포워딩
#Host-only, NAT, Bridged 차이
https://developerin.tistory.com/18
리눅스 IP 확인 ifconfig
----------------------
그리고 방화벽을 설정하여 특정 포트를 열어준다.
리눅스 방화벽 관리
https://server-engineer.tistory.com/840
리눅스 방화벽 열고 닫기
https://pinggoopark.tistory.com/158
윈도우 방화벽 열고닫기
https://healthydoctor.tistory.com/174
================================
리눅스(서버역할) server_echo.py
import socket
# 접속할 서버 주소(리눅스)입니다. 여기에서는 루프백(loopback) 인터페이스 주소 즉 localhost를 사용합니다.
HOST = '192.168.1.111'
# 클라이언트 접속을 대기하는 포트 번호입니다.
PORT = 9999
# 소켓 객체를 생성합니다.
# 주소 체계(address family)로 IPv4, 소켓 타입으로 TCP 사용합니다.
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 포트 사용중이라 연결할 수 없다는
# WinError 10048 에러 해결를 위해 필요합니다.
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# bind 함수는 소켓을 특정 네트워크 인터페이스와 포트 번호에 연결하는데 사용됩니다.
# HOST는 hostname, ip address, 빈 문자열 ""이 될 수 있습니다.
# 빈 문자열이면 모든 네트워크 인터페이스로부터의 접속을 허용합니다.
# PORT는 1-65535 사이의 숫자를 사용할 수 있습니다.
server_socket.bind((HOST, PORT))
# 서버가 클라이언트의 접속을 허용하도록 합니다.
server_socket.listen()
# accept 함수에서 대기하다가 클라이언트가 접속하면 새로운 소켓을 리턴합니다.
client_socket, addr = server_socket.accept()
# 접속한 클라이언트의 주소입니다.
print('Connected by', addr)
# 무한루프를 돌면서
while True:
# 클라이언트가 보낸 메시지를 수신하기 위해 대기합니다.
data = client_socket.recv(1024)
# 빈 문자열을 수신하면 루프를 중지합니다.
if not data:
break
# 수신받은 문자열을 출력합니다.
print('Received from', addr, data.decode())
# 받은 문자열을 다시 클라이언트로 전송해줍니다.(에코)
client_socket.sendall(data)
# 소켓을 닫습니다.
client_socket.close()
server_socket.close()
---------------------------------------------
윈도우(클라이언트 역할) client.py
import socket
def client_program():
host = '192.168.1.111' # as both code is running on same pc
port = 9999 # socket server port number
client_socket = socket.socket() # instantiate
client_socket.connect((host, port)) # connect to the server
message = input(" -> ") # take input
while message.lower().strip() != 'bye':
client_socket.send(message.encode()) # send message
data = client_socket.recv(1024).decode() # receive response
print('Received from server: ' + data) # show in terminal
message = input(" -> ") # again take input
client_socket.close() # close the connection
if __name__ == '__main__':
client_program()
'CS > 네트워크' 카테고리의 다른 글
네트워크 분석 (wireshark) (3) | 2024.10.17 |
---|---|
subnet (0) | 2023.01.12 |
ping이란, 패킷이란 (0) | 2023.01.03 |
IP주소, 서브넷마스크, 네트워크주소, 그리고 브로드캐스트주소 (0) | 2022.10.31 |
HTTP 동작 및 원리 (Feat. 인터넷) (0) | 2022.10.27 |