【高分】linux 下通过目前服务器端写客户端c语言程序

#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<netinet/in.h>#in... #include <sys/types.h>

#include <sys/socket.h>

#include <stdio.h>

#include <netinet/in.h>

#include <signal.h>

#include <unistd.h>

int main()

{

int server_sockfd, client_sockfd;

int server_len, client_len;

struct sockaddr_in server_address;

struct sockaddr_in client_address;

server_sockfd = socket(AF_INET, SOCK_STREAM, 0);

server_address.sin_family = AF_INET;

server_address.sin_addr.s_addr = htonl(INADDR_ANY);

server_address.sin_port = htons(9734);

server_len = sizeof(server_address);

bind(server_sockfd, (struct sockaddr *)&server_address, server_len);

listen(server_sockfd, 5);

signal(SIGCHLD, SIG_IGN);

while(1)

{

char ch;

printf("server waiting\n");

client_len = sizeof(client_address);

client_sockfd = accept(server_sockfd,

(struct sockaddr *)&client_address, &client_len);

if(fork() == 0)

{

read(client_sockfd, &ch, 1);

sleep(5);

ch++;

write(client_sockfd, &ch, 1);

close(client_sockfd);

exit(0);

}

else

{

close(client_sockfd);

}

}

}
展开
 我来答
xhylyx
2009-09-17 · TA获得超过555个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:772万
展开全部
代码写给你了啊,我验证过了的,不过你的服务端都没打印语句啊,我自己加上去了,可以收到客户端发的消息,服务端的打印语句你自己加吧
#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <netdb.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <sys/socket.h>

#define SERVPORT 9734

#define MAXDATASIZE 100

main(int argc,char *argv[]){

int sockfd,sendbytes;

char buf[MAXDATASIZE];

struct hostent *host;

struct sockaddr_in serv_addr;

if(argc < 2){

fprintf(stderr,"Please enter the server's hostname!\n");

exit(1);

}

if((host=gethostbyname(argv[1]))==NULL){

perror("gethostbyname");

exit(1);

}

if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){

perror("socket");

exit(1);

}

serv_addr.sin_family=AF_INET;

serv_addr.sin_port=htons(SERVPORT);

serv_addr.sin_addr=*((struct in_addr *)host->h_addr);

bzero(&(serv_addr.sin_zero),8);

if(connect(sockfd,(struct sockaddr *)&serv_addr,\

sizeof(struct sockaddr))==-1){

perror("connect");

exit(1);

}

if((sendbytes=send(sockfd,"hello",5,0))==-1){

perror("send");

exit(1);

}

close(sockfd);

}
天才踢踢
2009-09-17 · TA获得超过1671个赞
知道小有建树答主
回答量:513
采纳率:0%
帮助的人:324万
展开全部
read 和 write???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式