#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define portnumber 3333
int main(int argc, char *argv[])
{
char data[100]={};
while(1)
{
printf("inout data\n");
scanf("%s",&data);
if(fd=open("file",O_APPEND)==-1)
printf("File open error\n");
if(fw=write(fd,data)==-1)
printf("file write error\n");
else
printf("data write succuss\n");
network();
}
return 0;
}
void network(void)
{
int sockfd;
char buffer[1024];
struct sockaddr_in server_addr;
struct hostent *host;
int nbytes;
/* 使用hostname查询host 名字 */
/* if(argc!=2)
{
fprintf(stderr,"Usage:%s hostname \a\n",argv[0]);
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL)
{
fprintf(stderr,"Gethostname error\n");
exit(1);
}
*/
/* 客户程序开始建立 sockfd描述符 */
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) // AF_INET:Internet;SOCK_STREAM:TCP
{
fprintf(stderr,"Socket Error:%s\a\n",strerror(errno));
exit(1);
}
/* 客户程序填充服务端的资料 */
bzero(&server_addr,sizeof(server_addr)); // 初始化,置0
server_addr.sin_family=AF_INET; // IPV4
server_addr.sin_port=htons(portnumber); // (将本机器上的short数据转化为网络上的short数据)端口号
server_add.sin_addr=127.0.0.1;
// server_addr.sin_addr=*((struct in_addr *)host->h_addr); // IP地址
/* 客户程序发起连接请求 */
if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
{
fprintf(stderr,"Connect Error:%s\a\n",strerror(errno));
exit(1);
}
/* 连接成功了 */
/*if((nbytes=read(sockfd,buffer,1024))==-1)
{
fprintf(stderr,"Read Error:%s\n",strerror(errno));
exit(1);
} */
if((nbytes=write(sockfd,buffer,1024))==-1)
{
fprintf(stderr,"Read Error:%s\n",strerror(errno));
exit(1);
}
//buffer[nbytes]='\0';
//printf("I have received:%s\n",buffer);
/* 结束通讯 */
close(sockfd);
exit(0);
}
Linux TCP服务器 客户端
最新推荐文章于 2025-09-25 22:35:41 发布
本文介绍了一个简单的客户端网络通信程序实现,使用C语言编写。该程序通过socket API进行TCP连接,并与服务器进行基本的数据交互。文章展示了如何创建socket、设置服务器地址、发起连接请求等关键步骤。
511

被折叠的 条评论
为什么被折叠?



