当前位置: 技术问答>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))
怎么也不知道什么毛病,就是无法得到 应有的 效果。两个程序都是编译通过可以运行的 ,但是我这里运行时 客户端 就是得不到响应。
初学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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!