tobby48 4 年之前
父節點
當前提交
9b5e15ee8d

+ 1
- 1
src/kr/co/swh/lecture/network/tcp/tcpclient.py 查看文件

@@ -15,4 +15,4 @@ data = client_socket .recv(1024)
15 15
 
16 16
 print(data.decode())
17 17
 # connection close
18
-client_socket .close()
18
+client_socket.close()

+ 22
- 0
src/kr/co/swh/lecture/network/udp/udpclient.py 查看文件

@@ -0,0 +1,22 @@
1
+# socket module import!
2
+import socket
3
+
4
+# 소켓 객체를 생성합니다. 
5
+# 주소 체계(address family)로 IPv4, 소켓 타입으로 UDP 사용합니다.
6
+client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
7
+client_socket.connect(("localhost", 9999))
8
+
9
+# send msg
10
+msg = "안녕하세요"
11
+client_socket.send(msg.encode())
12
+
13
+
14
+# connection close
15
+client_socket.close()
16
+
17
+
18
+
19
+# import socket
20
+# client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
21
+# client_socket.sendto(msg.encode(), ("localhost", 9999))
22
+# client_socket.close()

+ 28
- 0
src/kr/co/swh/lecture/network/udp/udpserver.py 查看文件

@@ -0,0 +1,28 @@
1
+import socket
2
+
3
+# socket.AF_INET 은 IP4v 주소체계(socket.AF_INET6 은 IP6v), socket.SOCK_STREAM은 소켓의 타입
4
+# socket.AF_INET와 socket.SOCK_STREAM은 디폴트 값이므로 socket.socket() 로 코드를 작성해도 된다.
5
+server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
6
+
7
+# bind 함수는 소켓을 특정 네트워크 인터페이스와 포트 번호에 연결하는데 사용
8
+# HOST는 hostname, ip address, 빈 문자열 ""이 될 수 있습니다.
9
+# 빈 문자열이면 모든 네트워크 인터페이스로부터의 접속을 허용합니다. 
10
+# PORT는 1-65535 사이의 숫자를 사용할 수 있습니다.  
11
+recv_address = ('', 9999)   # 튜플
12
+server_socket.bind(recv_address)
13
+
14
+# recv and send loop
15
+while True:
16
+    
17
+    # 서버가 클라이언트의 접속을 허용
18
+    data, addr = server_socket.recvfrom(1024)
19
+    
20
+    # 빈 문자열을 수신하면 루프를 중지
21
+    if not data: 
22
+        break
23
+    
24
+    # 수신받은 문자열을 출력
25
+    print(addr[0], addr[1], data.decode())
26
+    
27
+
28
+server_socket.close()