当前位置: 技术问答>linux和unix
<unix网络编程>的第一个程序有没有人在linux上面执行成功!求您了……
来源: 互联网 发布时间:2016-04-22
本文导语: <unix网络编程>的第一个程序 daytimetcpcli.c 有没有人在linux平台上面执行成功!如果有哪位大哥大姐执行成功,求您了,指点指点我好吗?已经好几天了,我真是弄不了它,死活都执行不成功!……,我先谢谢您...
<unix网络编程>的第一个程序 daytimetcpcli.c 有没有人在linux平台上面执行成功!如果有哪位大哥大姐执行成功,求您了,指点指点我好吗?已经好几天了,我真是弄不了它,死活都执行不成功!……,我先谢谢您了!……
|
是不是时间服务的端口没开?
|
很明显unp.h这个头文件是自定义的头文件
你当前程序下没有这个头文件unp.h
如果你找不到这个文件,头文件只能靠你自己写了。
别着急挨个来,缺什么写什么!
#include
#include
#include
#include
有些头文件不存在的话,说明是自定义的头文件引用使用#include "dsada.h"
最好能把
unp.h找到,然后复制到你当前程序目录下。
你当前程序下没有这个头文件unp.h
如果你找不到这个文件,头文件只能靠你自己写了。
别着急挨个来,缺什么写什么!
#include
#include
#include
#include
有些头文件不存在的话,说明是自定义的头文件引用使用#include "dsada.h"
最好能把
unp.h找到,然后复制到你当前程序目录下。
|
LZ, 请参考这个:
http://pix.cs.olemiss.edu/csci561/prg561.1.html
源码:
http://pix.cs.olemiss.edu/csci561/unpv13e.tar.gz
用makefile编译
总之,我是成功的
http://pix.cs.olemiss.edu/csci561/prg561.1.html
源码:
http://pix.cs.olemiss.edu/csci561/unpv13e.tar.gz
用makefile编译
总之,我是成功的
|
lz,这是一个很好的学习素材。
主要是要根据编译器的提示进行相应的修正,缺什么就补什么呗。
1. 如果缺少系统头文件,往往会提示找不到某某符号,此时,只需简单man一下就知道应该include哪个头文件;
2. 如果缺少自定义的数据类型,就比较麻烦,得找到源代码中的具体内容。
主要是要根据编译器的提示进行相应的修正,缺什么就补什么呗。
1. 如果缺少系统头文件,往往会提示找不到某某符号,此时,只需简单man一下就知道应该include哪个头文件;
2. 如果缺少自定义的数据类型,就比较麻烦,得找到源代码中的具体内容。
|
运行过,不过忘了是怎么弄的了,如果只是编译这个文件你要修改它的头文件的路径,其它的就不记得了,得看源程序,另外还有一个服务器端程序,也要编译,一起运行才能看到结果。
好运!
好运!
|
我自己测试自己的SERVER时写的一个小程序 ,自己去看看咯。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main()
{
int sock_fd,flag ,connect_flag ;
int k = 0;
int writeable ;
int ret_flag = 0 ;
char amount[10240];
char amountA[10240];
char senddata[10240];
char buff[1024];
char *pbuff = NULL;
char ADD_IP[32]={"222.51.175.140"};
struct sockaddr_in serv;
struct in_addr addr;
struct sockaddr_in *serp = &serv;
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
flag = inet_aton(ADD_IP,&addr) ;
sock_fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
serp->sin_family = AF_INET;
serp->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
serp->sin_port = htons(8887);
serp->sin_addr = addr;
if(sock_fd>-1)
{
connect_flag = connect(sock_fd,serp,sizeof(serv));
tcflush( sock_fd , TCIFLUSH);
tcflush( sock_fd , TCOFLUSH);
memset((void *)buff,'',sizeof(buff));
for(;;){
printf(">");
memset((void *)buff,'',sizeof(buff));
scanf("%s",buff);
pbuff = buff;
while(*pbuff)
{
*pbuff = (*pbuff == 'r' || *pbuff == 'n' ? ' ' : *pbuff );
pbuff++;
}
pbuff = buff;
if(ret_flag = (buff[0]=='s' && buff[1]=='e' && buff[2]=='n' && buff[3]=='d' && buff[4]==':') )
{
pbuff+=5;
write(sock_fd,pbuff,strlen(pbuff));
}
if(strstr("rec:",buff))
{
pbuff+=4;
read(sock_fd,pbuff,1024);
printf("MESSAGE FROM SERVER: [%s]n",pbuff);
}
}
}
else
{
exit(0);
}
if( sock_fd > -1 ){
close(sock_fd);
}
printf("sock_fd [%d] flag = [%d] connect_flag = [%d]n",sock_fd,flag,connect_flag);
}
运行连接到指定ip, rec: 收数据,send: 后面跟发送的数据。 我也是看了UNIX网络编程这本书写出来的,程序很简单基本没错误处理。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main()
{
int sock_fd,flag ,connect_flag ;
int k = 0;
int writeable ;
int ret_flag = 0 ;
char amount[10240];
char amountA[10240];
char senddata[10240];
char buff[1024];
char *pbuff = NULL;
char ADD_IP[32]={"222.51.175.140"};
struct sockaddr_in serv;
struct in_addr addr;
struct sockaddr_in *serp = &serv;
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
flag = inet_aton(ADD_IP,&addr) ;
sock_fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
serp->sin_family = AF_INET;
serp->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
serp->sin_port = htons(8887);
serp->sin_addr = addr;
if(sock_fd>-1)
{
connect_flag = connect(sock_fd,serp,sizeof(serv));
tcflush( sock_fd , TCIFLUSH);
tcflush( sock_fd , TCOFLUSH);
memset((void *)buff,'',sizeof(buff));
for(;;){
printf(">");
memset((void *)buff,'',sizeof(buff));
scanf("%s",buff);
pbuff = buff;
while(*pbuff)
{
*pbuff = (*pbuff == 'r' || *pbuff == 'n' ? ' ' : *pbuff );
pbuff++;
}
pbuff = buff;
if(ret_flag = (buff[0]=='s' && buff[1]=='e' && buff[2]=='n' && buff[3]=='d' && buff[4]==':') )
{
pbuff+=5;
write(sock_fd,pbuff,strlen(pbuff));
}
if(strstr("rec:",buff))
{
pbuff+=4;
read(sock_fd,pbuff,1024);
printf("MESSAGE FROM SERVER: [%s]n",pbuff);
}
}
}
else
{
exit(0);
}
if( sock_fd > -1 ){
close(sock_fd);
}
printf("sock_fd [%d] flag = [%d] connect_flag = [%d]n",sock_fd,flag,connect_flag);
}
运行连接到指定ip, rec: 收数据,send: 后面跟发送的数据。 我也是看了UNIX网络编程这本书写出来的,程序很简单基本没错误处理。
|
发个源程序看看
|
没看过这本书,你可以把代码贴出来吗?
|
可以把源码贴出来
还有编译的时候都报什么错?
是不是头文件没包含全啊?
还有编译的时候都报什么错?
是不是头文件没包含全啊?
|
把源代码编辑一下贴过来,可帮忙看一下.