- 论坛徽章:
- 0
|
我的redhat7.2上已经启动echo的udp服务,通过netstat也已经看到,但是如何才能验证呢?比如我用telnet 127。0。0。1 7,系统提示连接拒绝,这里的7指的是tcp的7号端口?我用程序访问也不行,下面是代码,郁闷:
【/quote
#include "unp.h"
int
main(int argc, char **argv)
{
int sockfd, n;
char recvline[MAXLINE + 1];
char sendline[MAXLINE +1 ];
socklen_t salen;
struct in_addr inaddr;
struct sockaddr_in servaddr;
struct hostent *he;
int addrlen=0;
if ( ( he = gethostbyname( "127.0.0.1" ) ) == NULL )
{
perror( "gethostbyname" );
exit( 1 );
}
addrlen = sizeof ( struct sockaddr );
bzero( &servaddr,sizeof( servaddr ) );
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons( 7 );
servaddr.sin_addr = *( ( struct in_addr *) he ->; h_addr );
if ( ( sockfd = socket( AF_INET,SOCK_DGRAM,0 ) ) == -1 )
{
perror( "socket" );
exit( 1 );
}
printf( "sockfd = %d \n",sockfd );
printf("IP =%s, Port = %d\n", inet_ntoa(servaddr.sin_addr), ntohs(servaddr.sin_port));
strncpy(sendline,"123456",6);
if ( sendto ( sockfd, sendline, sizeof( sendline ), 0, ( struct sockaddr* )&servaddr, addrlen ) == -1 )
{
perror("sendto"
exit(1);
}
n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
recvline[n] = 0; /* null terminate */
printf("recvline is:%s\n",recvline);
exit(0);
}
/quote]
谢谢! |
|