大神们帮我看看程序吧,linux C语言编程 隐式声明和strlen出错,改为sizeof后,段错误,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大神们帮我看看程序吧,linux C语言编程 隐式声明和strlen出错,改为sizeof后,段错误,相关的知识,希望对你有一定的参考价值。

/*ex8-2server.c*/
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define LISTENQ 5
#define MAXLINE 512

int main()

int listenfd, connfd;
socklen_t len;
struct sockaddr_in servaddr, cliaddr;
char buff[MAXLINE];
time_t ticks;
listenfd=socket(AF_INET, SOCK_STREAM,0);
if(listenfd<0)

printf("Socket created failed.\n");
return -1;

servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(6666);
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr))<0)

printf("bind failed.\n");
return -1;

printf("listening....\n");
listen(listenfd, LISTENQ);
while(1)

len=sizeof(cliaddr);
connfd=accept(listenfd,(struct sockaddr *)&cliaddr, &len);
printf("connect from %s, port %d \n",inet_ntoa(cliaddr.sin_addr.s_addr),ntohs(cliaddr.sin_port));
ticks=time(NULL);
sprintf(buff,"% .24s \r \n",ctime(&ticks));
write(connfd,buff,strlen(buff));
close(connfd);


/*ex8-2client.c*/
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define MAXBUFFSIZE 256
#define PORT 6666
#define HOST_ADDR "127.0.0.1"
int main(int argc, char *argv[])

int sockfd,n;
char recvbuff[MAXBUFFSIZE];
struct sockaddr_in servaddr;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)

printf("Socket created failed.\n");
return -1;


servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(6666);
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
printf("connecting...\n");
if(connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr))<0)

printf("Connect server failed.\n");
return -1;

while((n=read(sockfd,recvbuff,MAXBUFFSIZE))>0)

recvbuff[n]=0;
fputs(recvbuff,stdout);

if(n<0)

printf("Read failed!\n");
return -2;

return 0;

这是客户机 服务器连接程序,通过套接字建立连接,客户机使用流套接字向服务器请求日期和时间,服务器在收到请求后,回答请求并显示出客户的地址,但是在终端运行后,服务器提示listening,,,,并提示段错误,客户端只提示connecting.........无法正常运行

段错误说明非法内存操作 参考技术A sizeof会计算结束符 参考技术B 你能把你的问题说出来不 这么多 怎么看???

大神们,快帮我看看EFI系统分区怎么没有了

FAT32格式的EFI分区是系统安装时建立的,操作系统引导文件所在必不可少的引导分区……如果EFI分区出错计算机加电开机后将因找不到引导文件而无法进入系统。以前引导文件和系统在一起,可能是追求安全可靠等原因,现在windows把操作系统引导文件单独放于一个分区。有点象Linux……呵呵
只有GPT磁盘在安装系统时才会有EFI分区,并且是FAT32格式。原因和UEFI BIOS的引导特点有关。以前的BIOS引导不了GPT,并且安装WIN7等系统时建立的是一个隐藏的保留分区。作用和EFI一样。
参考技术A 分区格式不能在系统识别

以上是关于大神们帮我看看程序吧,linux C语言编程 隐式声明和strlen出错,改为sizeof后,段错误,的主要内容,如果未能解决你的问题,请参考以下文章

设置oracle11g定时自动备份,为啥没有备份?请大神们帮我看看为啥!

debug assertion failed winocc.cpp line:138 好不容易下载到一个程序,不能打开,大大们帮我一下吧!急!

.net高手们帮我解决一下吧!

c语言求助 帮我看看,求大神,错误是syntax error before'&' token,急

我找到1个 html 页面 用来查询 mdb 数据库 带分页,挺简单的,就是分页用post实现的,师兄们帮我看看怎么改?

eclipse+mingw 编译c++出错,请大神门帮我看看!!!