2.7 TCP套接字编程
2.7.1 UDP套接字编程
环境:主机win10-Server,虚拟机win7-Client,python3
-
UDPClient.py
from socket import * serverName = '192.168.***.***' # 这里用你们自己主机的ip address serverPort = 12000 clientSocket = socket(AF_INET, SOCK_DGRAM) # 第一个参数指示了地址簇;特别是,AF_INET指示了底层网络使用IPv4 # 第二个参数指示了该套接字是SOCK_DGRAM类型,这意味着它是一个UDP套接字 message = input('Input lowercase sentence :') clientSocket.sendto(message.encode(), (serverName, serverPort)) # 这里sendto的message记得编码encode modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print(modifiedMessage) clientSocket.close()
-
UDPServer.py
from socket import * serverPort = 12000 serverSocket = socket(AF_INET, SOCK_DGRAM) # 这里同上 serverSocket.bind(('', serverPort)) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip print('The server is ready to receive.') message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.upper() # 转为大写后再返回回去 serverSocket.sendto(modifiedMessage, clientAddress) serverSocket.close()
-
Runtime
1)Server运行UDPServer.py
2)Client运行UDPClient.py
输入完之后,press key-enter
返回了大写的结果,运行结束。
2.7.2 TCP套接字编程
-
TCPClient.py
from socket import * tcpClientSocket = socket(AF_INET, SOCK_STREAM) serverAddress = ("192.168.1.***", 7788) # 这个地方你们用自己的ip tcpClientSocket.connect(serverAddress) sentence = input("Please input one sentence: ") tcpClientSocket.send(sentence.encode()) receiveData = tcpClientSocket.recv(1024) print("Received data is : ", receiveData.decode()) tcpClientSocket.close()
-
TCPServer.py
from socket import * tcpServerSocket = socket(AF_INET, SOCK_STREAM) address = ("", 7788) tcpServerSocket.bind(address) tcpServerSocket.listen(5) print("Listening...") newSocket, clientAddress = tcpServerSocket.accept() print("Connection building...", clientAddress) receiveData = newSocket.recv(1024) print("Received Data is : ", receiveData.decode()) newSocket.send(receiveData.upper()) newSocket.close() tcpServerSocket.close()
-
Runtime
- win10-Server运行TCPServer.py
2)win7-Client运行TCPCliet.py
输入完之后,press key-enter
同样返回了大写的结果,运行结束。
- win10-Server运行TCPServer.py
参考博客