您的位置:首页 > 教育 > 锐评 > 建筑设计公司经营范围_广告设计公司需要资质吗_搜索引擎简称seo_培训学校管理制度大全

建筑设计公司经营范围_广告设计公司需要资质吗_搜索引擎简称seo_培训学校管理制度大全

2024/10/5 22:27:57 来源:https://blog.csdn.net/FHKHH/article/details/142337554  浏览:    关键词:建筑设计公司经营范围_广告设计公司需要资质吗_搜索引擎简称seo_培训学校管理制度大全
建筑设计公司经营范围_广告设计公司需要资质吗_搜索引擎简称seo_培训学校管理制度大全

在Ubuntu上使用VSCode实现TCP编程的完整流程包括安装必要的工具、编写TCP客户端和服务器代码、编译和运行程序。这里将介绍如何使用Python或C语言编写简单的TCP客户端和服务器,并在VSCode上运行。

1. 安装必要的工具

在Ubuntu上进行TCP编程前,需要确保已安装好VSCode、Python或GCC编译器(根据你使用的编程语言)。以下是相关工具的安装步骤。

1.1 安装 VSCode

如果还没有安装VSCode,可以通过以下命令进行安装:

sudo apt update
sudo apt install code
1.2 安装 Python3

如果计划使用Python进行TCP编程,通常Ubuntu已经自带Python3,可以通过以下命令确认是否已安装:

python3 --version

如果未安装,使用以下命令安装Python3:

sudo apt install python3
1.3 安装 GCC(用于 C/C++ TCP 编程)

如果计划使用C语言编写TCP程序,需要安装GCC编译器:

sudo apt update
sudo apt install build-essential

2. 安装 VSCode 扩展

打开VSCode后,安装相关的扩展,以支持Python或C/C++编程。

2.1 安装 Python 扩展

在VSCode中:

  1. 按下 Ctrl+Shift+P,输入 ext install ms-python.python,回车安装Python扩展。
  2. 安装完成后,VSCode将能够解析Python代码,提供语法高亮、调试和代码补全功能。
2.2 安装 C/C++ 扩展
  1. 按下 Ctrl+Shift+P,输入 ext install ms-vscode.cpptools,回车安装C/C++扩展。
  2. 安装完成后,VSCode将支持C/C++代码的语法检查和调试。

3. 编写 TCP 客户端和服务器程序

3.1 Python 实现
TCP 服务器(TCPServer.py
from socket import *# 设置服务器端口
serverPort = 12000# 创建TCP套接字
serverSocket = socket(AF_INET, SOCK_STREAM)# 绑定套接字到服务器IP和端口
serverSocket.bind(('', serverPort))# 开始监听客户端连接,最多允许1个客户端连接
serverSocket.listen(1)# 提示服务器已准备好接收连接
print('The server is ready to receive')# 无限循环,等待客户端连接
while True:# 接受客户端连接请求connectionSocket, addr = serverSocket.accept()# 接收客户端发送的数据sentence = connectionSocket.recv(1024).decode()# 将收到的消息转换为大写capitalizedSentence = sentence.upper()# 将处理后的消息发送回客户端connectionSocket.send(capitalizedSentence.encode())# 关闭连接套接字connectionSocket.close()
TCP 客户端(TCPClient.py
from socket import *# 设置服务器地址和端口
serverName = 'localhost'  # 本地服务器
serverPort = 12000# 创建TCP套接字
clientSocket = socket(AF_INET, SOCK_STREAM)# 连接到服务器
clientSocket.connect((serverName, serverPort))# 获取用户输入
sentence = input('Input lowercase sentence: ')# 发送消息到服务器
clientSocket.send(sentence.encode())# 接收服务器的响应
modifiedSentence = clientSocket.recv(1024)
print('From Server:', modifiedSentence.decode())# 关闭套接字
clientSocket.close()
3.2 C 语言实现
TCP 服务器(tcp_server.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>#define PORT 12000
#define BUFFER_SIZE 1024int main() {int server_fd, new_socket;struct sockaddr_in address;int addrlen = sizeof(address);char buffer[BUFFER_SIZE] = {0};char *response;// 创建TCP套接字server_fd = socket(AF_INET, SOCK_STREAM, 0);if (server_fd == 0) {perror("Socket failed");exit(EXIT_FAILURE);}// 绑定套接字到指定端口address.sin_family = AF_INET;address.sin_addr.s_addr = INADDR_ANY;address.sin_port = htons(PORT);if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {perror("Bind failed");close(server_fd);exit(EXIT_FAILURE);}// 开始监听if (listen(server_fd, 3) < 0) {perror("Listen failed");close(server_fd);exit(EXIT_FAILURE);}printf("Server is ready to receive\n");// 接受客户端连接new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen);if (new_socket < 0) {perror("Accept failed");close(server_fd);exit(EXIT_FAILURE);}// 读取客户端消息read(new_socket, buffer, BUFFER_SIZE);printf("Received: %s\n", buffer);// 将消息转换为大写并发送回客户端for (int i = 0; i < strlen(buffer); i++) {buffer[i] = toupper(buffer[i]);}send(new_socket, buffer, strlen(buffer), 0);// 关闭连接close(new_socket);close(server_fd);return 0;
}
TCP 客户端(tcp_client.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>#define PORT 12000
#define BUFFER_SIZE 1024int main() {int sock = 0;struct sockaddr_in serv_addr;char *message = "hello server";char buffer[BUFFER_SIZE] = {0};// 创建TCP套接字sock = socket(AF_INET, SOCK_STREAM, 0);if (sock < 0) {printf("Socket creation error\n");return -1;}serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(PORT);// 连接到服务器if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {printf("Invalid address/ Address not supported\n");return -1;}if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {printf("Connection failed\n");return -1;}// 发送消息到服务器send(sock, message, strlen(message), 0);printf("Message sent\n");// 接收来自服务器的消息read(sock, buffer, BUFFER_SIZE);printf("From Server: %s\n", buffer);// 关闭套接字close(sock);return 0;
}

4. 编译和运行

4.1 Python TCP 程序
  1. 启动服务器

    • 在VSCode终端中,导航到包含TCPServer.py的目录,并运行以下命令:
    python3 TCPServer.py
    
  2. 启动客户端

    • 打开一个新的VSCode终端,导航到包含TCPClient.py的目录,并运行以下命令:
    python3 TCPClient.py
    
4.2 C 语言 TCP 程序
  1. 编译服务器

    • 在VSCode终端中,导航到包含tcp_server.c的目录,并运行以下命令编译:
    gcc tcp_server.c -o tcp_server
    
  2. 编译客户端

    • 在VSCode终端中,导航到包含tcp_client.c的目录,并运行以下命令编译:
    gcc tcp_client.c -o tcp_client
    
  3. 启动服务器

    • 编译完成后,运行以下命令启动服务器:
    ./tcp_server
    
  4. 启动客户端

    • 在另一个VSCode终端中,运行以下命令启动客户端:
    ./tcp_client
    

5. 验证通信

  • 客户端会向服务器发送一条消息(Python实现中用户输入,C语言中是预定义的字符串),服务器会接收消息并将其转换为大写字母,然后将处理后的消息发送回客户端。客户端会接收到处理后的消息并显示。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com