当前位置:  技术问答>linux和unix

一个udp_server程序,调试无法通过

    来源: 互联网  发布时间:2015-11-04

    本文导语:  各位大侠,下面是linux下的 一个 udp_server 和 测试用的 client 程序 , 怎么也不知道什么毛病,就是无法得到 应有的 效果。两个程序都是编译通过可以运行的 ,但是我这里运行时 客户端 就是得不到响应。 初...

各位大侠,下面是linux下的 一个 udp_server 和 测试用的 client 程序 ,
怎么也不知道什么毛病,就是无法得到 应有的 效果。两个程序都是编译通过可以运行的 ,但是我这里运行时 客户端 就是得不到响应。
初学linux下的 socket编程,请各位大侠多多指教,谢谢
---------------------------------------------------------
/*
* servtest.c  -- This is server program. Written by TJB
*/

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define BUF_LEN 255
extern int errno;

int sock, fd;

void sigfun(int signum)
{
close(sock);
exit(0);
}

int main(void)
{
int len, fromlen;
struct protoent * protos;
struct hostent * host;
struct sockaddr_in saddr;
char buf[BUF_LEN];
struct sockaddr_in from;
time_t tim;

signal(SIGHUP, sigfun);
signal(SIGINT, sigfun);

if(fork() == 0) //child process
{
if((fd = open("timelog", O_CREAT|O_APPEND|O_WRONLY, 0644)) == -1)
{
printf("Open error %d: %sn", errno, strerror(errno));
exit(-1);
}
close(1);
dup(fd);
close(2);
dup(fd);
close(0);
close(fd);

fromlen = sizeof(from);
protos = getprotobyname("udp");
if((host = gethostbyname("127.0.0.1")) == NULL)
{
printf("gethostbyname errorn");
exit(-1);
}

saddr.sin_family = AF_INET;
saddr.sin_port = htons(9876);
bcopy(host->h_addr, &saddr.sin_addr, host->h_length);

if((sock = socket(AF_INET, SOCK_DGRAM, protos->p_proto)) h_addr, &saddr.sin_addr, host->h_length);
if((sock = socket(AF_INET, SOCK_DGRAM, protos->p_proto)) 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3