Re: some problem in UDP programming under linux
- From: "Lew Pitcher" <lpitcher@xxxxxxxxxxxx>
- Date: 26 Feb 2007 18:22:47 -0800
On Feb 26, 8:16 pm, s9327...@xxxxxxxxxxxxxxxx wrote:
Dear All :
I have some problem in UDP clinet programming, my source code
under line.
#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<stdlib.h>
#define PORT 65536
/*
** since port numbers range from 1 to 65535,
** the original port number of 65536 is out of range
** and will not work. Use a different port
*/
#define PORT 65534
#define SERVER_IP "10.l10.138.200"
/*
** The server IP must either be a legal dotted decimal
** number, or a DNS name. The original is neither.
** Use a corrected dotted decimal IP address
*/
#define SERVER_IP "10.10.138.200"
main()
{
int s,len;
struct sockaddr_in addr;
int addr_len = sizeof(struct sockaddr_in);
char buffer[256];
if ((s = socket(AF_INET, SOCK_DGRAM, 0))<0)
{
perror("socket");
exit(1);}
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER_IP);
while(1)
{
bzero(buffer, sizeof(buffer));
len=read(STDIN_FILENO, buffer, sizeof(buffer));
sendto(s, buffer, len, 0, &addr, addr_len);
/*
** sendto() takes a generic sockaddr pointer, but we have a
** TCP/IP sockaddr_in pointer. Cast the sockaddr_in pointer to
** the generic sockaddr pointer, and continue.
*/
sendto(s, buffer, len, 0, (struct sockaddr *)&addr, addr_len);
len = recvfrom(s, buffer, sizeof(buffer), 0, &addr, &addr_len);
/*
** recvfrom() takes a generic sockaddr pointer, but we have a
** TCP/IP sockaddr_in pointer. Cast the sockaddr_in pointer to
** the generic sockaddr pointer, and continue.
*/
len = recvfrom(s, buffer, sizeof(buffer), 0 (struct sockaddr
*)&addr, &addr_len);
printf("receive: %s",buffer);
}
}
But I complier in Red Hat 9 have three bug
udpclient1.C: In function 'int main()'
udpclient1.C:34: cannot convert 'sockaddr_in*' to 'const sockaddr*'
for argument '5' to 'ssize_t sendto(int, const void*, unsigned int,
int, const sockaddr* . unsigned int)'
udpclient1.C:35: cannot convert 'sockaddr_in*' to 'const sockaddr*'
for argument '5' to 'ssize_t recvfrom(int, void*, unsigned int, int,
const sockaddr* . socklen_t*)'
HTH
--
Lew
.
- Follow-Ups:
- Re: some problem in UDP programming under linux
- From: s9327620
- Re: some problem in UDP programming under linux
- References:
- some problem in UDP programming under linux
- From: s9327620
- some problem in UDP programming under linux
- Prev by Date: Re: some problem in UDP programming under linux
- Next by Date: Re: some problem in UDP programming under linux
- Previous by thread: Re: some problem in UDP programming under linux
- Next by thread: Re: some problem in UDP programming under linux
- Index(es):
Relevant Pages
|