用c语言这一个tcp通讯程序
时间: 2023-03-20 20:02:25 浏览: 114
您好,我是C知道,很高兴为您回答问题。
对于您的问题,如果您想用C语言编写一个TCP通讯程序,可以使用socket库。使用socket库,您可以创建客户端和服务器端的套接字,进行数据传输。
以下是一个简单的TCP客户端示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char **argv) {
int sockfd, n;
struct sockaddr_in servaddr;
char sendline[1000];
char recvline[1000];
if (argc != 2) {
printf("usage: ./client <IP address>\n");
exit(1);
}
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("socket error");
exit(1);
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(8080);
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0) {
printf("inet_pton error for %s\n", argv[1]);
exit(1);
}
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) {
perror("connect error");
exit(1);
}
while (fgets(sendline, 1000, stdin) != NULL) {
write(sockfd, sendline, strlen(sendline));
if (read(sockfd, recvline, 1000) == 0) {
printf("server terminated prematurely\n");
exit(1);
}
printf("%s", recvline);
}
exit(0);
}
```
这个示例代码创建了一个TCP客户端套接字,连接到指定的IP地址和端口,然后在命令行上等待用户输入数据,发送到服务器端,并读取服务器端的响应。
您也可以使用类似的代码创建TCP服务器端套接字,接收来自客户端的数据,然后做出响应。
希望这可以帮助您开始编写您的TCP通讯程序。如果您有任何问题,请随时问我。
阅读全文