hi all,
i meet a problem when opening a socket, is that when the remote host not available or its port hanged ,my program still suspending untill i cancel the operation...
but when the host is ok ,my program work ok.
i handled in my code all these exceptions ,but my problem is when the host is not avaialable i want to exit with that error ???!!!!
here is the part of my code for socket programming :
Code:
void ethernet::etherSetup(char *strIP,int nPort)
{
unsigned long ip;
if((*strIP <= '9') && (*strIP >= '0'))
{
if( (int)(ip = inet_addr(strIP)) == -1 )
{
printf("\r\nIP-address must be of the form a.b.c.d\n");
exit (2);
}
}
else
{
server = gethostbyname(strIP);
if(!server)
{
printf("\nError in host Name.\n");
exit(2);
}
ip = *(unsigned long*)(server->h_addr);
}
/////printf("\r\nSERVER IP=%d\r\n ",ip);
server = gethostbyaddr((char *)&ip,sizeof(ip),AF_INET);
if (server == NULL)
{
printf("\r\nERROR, no such host .\n");
exit(1);
}
bzero((char *) &m_sockaddr_in, sizeof(m_sockaddr_in));
m_sockaddr_in.sin_family = AF_INET;
m_sockaddr_in.sin_port = htons(nPort);
m_sockaddr_in.sin_addr = *(in_addr*)&ip;
printf("remotehost : %s , port : %d \n",strIP,nPort);
}
//-----------------------------------------------------------------
int ethernet::Create()
{
sockfd = socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
if ( sockfd <0 ) return -1;
return 0;
}
//-----------------------------------------------------------------
int ethernet::Connect()
{
int ret;
ret = connect(sockfd,(sockaddr*)&m_sockaddr_in,sizeof(m_sockaddr_in));
if ( ret <0 ) return -1; //ERROR in connection>
return 0;
}
N.B:
this code runs under UNIX sun solaris OS
thanks.
Hello,
I actually try to make client-server program.
I'm using SCO OpenServer Release 5.0.0 and when I try to compile my code (by TELNET) I've got this error :
I'm just using this simple code :
and I get the same error if I use :
If someone can help me,
Thanks (2 Replies)
If I do a netstat -a I can see all the sockets currently open, is there a way that I can tell which application is holding open these sockets ? (3 Replies)
Hi all,
I am trying to connect the open socket and its owner PID on my Solaris9 system. But it seems not very easy.
As netstat is not as powerful as it is on Linux platform, without the "-program" option, and "lsof -i <UDP|TCP>@<hostIP>" won't show the one i want although it lists some... (1 Reply)
Hello,
I want to test a firewall rule between 2 servers A & B.
I need a command that will open a socket on the server A such as:
themagiccommand MyPort
And on the client server B, i will run the command
telnet IP_serverA Myport
Can you help me ?
Thank you
Gunther (0 Replies)
Hi,
I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime.
To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Hi all,
On the server side, one socket is used for listening, the others are used for communicating with the client.
My question is: if i want to set option for socket, which socket should be set on?
If either can be set, what's the different?
Again, what's the different if set option... (1 Reply)
Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct...
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include... (3 Replies)
Dear Experts,
i am compiling my code in suse 4.1 which is compiling fine,
but at runtime it is showing me for socket programming error no 88
as i searched in errno.h it is telling me socket operation on non socket,
what is the meaning of this , how to deal with this error , please... (1 Reply)
I need clarification on whether it is okay to set socket options on a listening socket
simultaneously when it is being used in an accept() call?
Following is the scenario:-
-- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies
LEARN ABOUT DEBIAN
roar_stream_connect_to
roar_stream_connect_to(3) System Manager's Manual: RoarAudio roar_stream_connect_to(3)NAME
roar_stream_connect_to - Connects a stream to some listening socket
SYNOPSIS
#include <roaraudio.h>
int roar_stream_connect_to(struct roar_connection * con, struct roar_stream * s, int type, char * host, int port);
DESCRIPTION
This let the sound server connect to some remote end to get it's data for a stream. This is used internaly to open additional streams for
roar_simple_new_stream(3).
NOTE: This is not an alternative version of roar_stream_connect(3). You still need to connect the stream to the server via roar_stream_con-
nect(3) before you can use this call.
PARAMETERS
con The connection to the server.
s The stream to connect.
type, host, port
Where the stream should be connected to. For a description of all these parameters see roar_socket_listen(3).
NOTES
This call will block untill the server process to connect to has accepted the connection. This makes this call unusable to connect back to
us if we are not threaded. For a nonblocking call see roar_stream_connect_to_ask(3).
RETURN VALUE
On success these calls return 0. On error, -1 is returned.
EXAMPLES
FIXME
SEE ALSO roar_simple_new_stream(3), roar_stream_connect(3), roar_socket_listen(3), libroar(7), RoarAudio(7).
RoarAudio May 2011 roar_stream_connect_to(3)