File tree Expand file tree Collapse file tree 4 files changed +129
-0
lines changed Expand file tree Collapse file tree 4 files changed +129
-0
lines changed Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ @author: 闲欢
5
+ """
6
+
7
+ import socket
8
+ import time
9
+
10
+ # 创建 socket
11
+ s = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
12
+
13
+ # 建立连接
14
+ s .connect (("127.0.0.1" , 6000 ))
15
+
16
+ # 接收服务器消息
17
+ print (s .recv (1024 ).decode ())
18
+
19
+ for data in [b'Michael' , b'Tracy' , b'Sarah' ]:
20
+ # 发送数据
21
+ s .send (data )
22
+ time .sleep (2 )
23
+ # 打印接收到的数据
24
+ print (s .recv (1024 ).decode ('utf-8' ))
25
+ time .sleep (1 )
26
+
27
+ time .sleep (3 )
28
+ # 请求退出
29
+ s .send (b'exit' )
30
+ time .sleep (2 )
31
+ print (s .recv (1024 ).decode ('utf-8' ))
32
+
33
+ # 关闭连接
34
+ s .close ()
35
+
36
+
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ @author: 闲欢
5
+ """
6
+
7
+ import socket
8
+ import threading
9
+ import time
10
+
11
+
12
+ # 处理tcp连接
13
+ def tcplink (conn , addr ):
14
+ print ("Accept new connection from %s:%s" % addr )
15
+ # 向客户端发送欢迎消息
16
+ conn .send (b"Server: Welcome!\n " )
17
+ while True :
18
+ conn .send (b"Server: What's your name?" )
19
+
20
+ data = conn .recv (1024 )
21
+ # 如果客户端发送 exit 过来请求退出,结束循环
22
+ if data == b"exit" :
23
+ conn .send (b"Server: Good bye!\n " )
24
+ break
25
+ conn .send (b"Server: Hello %s!\n " % data )
26
+
27
+ time .sleep (5 )
28
+ # 关闭连接
29
+ conn .close ()
30
+ print ("Connection from %s:%s is closed" % addr )
31
+
32
+
33
+ # 创建 socket
34
+ s = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
35
+ # 监听端口
36
+ s .bind (("127.0.0.1" , 6000 ))
37
+ # 设定等待连接的最大数量为5
38
+ s .listen (5 )
39
+ print ("Waiting for connection..." )
40
+ # 等待接收连接
41
+ while True :
42
+ # 接受一个新连接
43
+ conn , addr = s .accept ()
44
+ # 创建新线程来处理TCP连接
45
+ t = threading .Thread (target = tcplink , args = (conn , addr ))
46
+ t .start ()
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ @author: 闲欢
5
+ """
6
+ import socket
7
+
8
+ # 创建 socket
9
+ sk = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
10
+ addr = ('127.0.0.1' , 6000 )
11
+ while True :
12
+ # 等待输入
13
+ msg = input ('>>>' )
14
+ # 发送数据报
15
+ sk .sendto (msg .encode ('utf-8' ), addr )
16
+ # 接收数据报
17
+ msg_recv , addr = sk .recvfrom (1024 )
18
+ # 打印
19
+ print (msg_recv .decode ('utf-8' ))
20
+
21
+ # 关闭 socket
22
+ sk .close ()
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ @author: 闲欢
5
+ """
6
+
7
+ import socket
8
+
9
+ # 创建 socket
10
+ sk = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
11
+ # 绑定 IP 和端口号
12
+ sk .bind (('127.0.0.1' , 6000 ))
13
+ while True :
14
+ # 接收数据报
15
+ msg , addr = sk .recvfrom (1024 )
16
+ # 打印
17
+ print ('来自[%s:%s]的消息: %s' % (addr [0 ], addr [1 ], msg .decode ('utf-8' )))
18
+
19
+ # 等待输入
20
+ inp = input ('>>>' )
21
+ # 发送数据报
22
+ sk .sendto (inp .encode ('utf-8' ), addr )
23
+
24
+ # 关闭 socket
25
+ sk .close ()
You can’t perform that action at this time.
0 commit comments