Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Socket programming : Accept return 0. Post 302140811 by abc.working on Tuesday 16th of October 2007 06:49:01 AM
Old 10-16-2007
Server code:
Code:
#define MYPORT 1034
int main()
{
 struct sockaddr_in sin;
 struct sockaddr_in cin;
 int s = socket(PF_INET,SOCK_STREAM,0);
 sin.sin_family = AF_INET;
 sin.sin_port = htons(MYPORT);
 sin.sin_addr.s_addr = INADDR_ANY;
 memset(sin.sin_zero,'\0',sizeof(sin.sin_zero));
 int check=bind(s,(struct sockaddr *)&sin,sizeof(sin));
 check=listen(s,5);
 addrlen=sizeof(cin);
//My server waits when below line is encountered
 s_client = accept(s,(struct sockaddr *)&cin,&addrlen);
//once client runs and connect is executed accept returns 0
 printf("hi %s\n",inet_ntoa(cin.sin_addr));
 char *buf;
 //the below recv is non blocking, it doesn't wait for client to send.
 recv(s_client,buf,100,0);
}

Client code:
Code:
int main(int argc,char *argv[])
{
 struct sockaddr_in sin;
 struct sockaddr_in cin;
 struct hostent *hp;
 hp=gethostbyname(argv[1]);
 cin.sin_family = AF_INET;
 cin.sin_addr = *((struct in_addr *)hp->h_addr);
 cin.sin_port = htons(MYPORT);
 memset(cin1.sin_zero,'\0',sizeof(cin.sin_zero));
 int s = socket(PF_INET,SOCK_STREAM,0);
 int check = connect(s,(struct sockaddr *)&cin,sizeof(cin));
 char buf[100] = "from client";
 int len = strlen(buf);
 int bytes_sent = send(s,buf,len,0);
 printf("%d",bytes_sent); // output is 11
}


Last edited by vino; 10-16-2007 at 07:58 AM.. Reason: Added code tags
 

10 More Discussions You Might Find Interesting

1. Programming

Socket Programming

Dear Reader, Is there any way to check up socket status other than 'netstatus ' Thanks in advance, (1 Reply)
Discussion started by: joseph_shibu
1 Replies

2. Programming

Socket Programming socket

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)
Discussion started by: soshell
2 Replies

3. IP Networking

socket programming

my system is a stand alone system... i want to try doing socket porgramming..ihave heard that this is usually done during testing... how can i do that....? (6 Replies)
Discussion started by: damn_bkb
6 Replies

4. Programming

Please help! accept function problems in Socket programming

Hi, I have a client-server socket program. It has been working fine for over a year, but recently it started to show strange behavior.:confused: After the server program runs for a while, it will show in the top command saying it is using lots of CPU, MEM. I assume it means the server code is... (1 Reply)
Discussion started by: natxie
1 Replies

5. IP Networking

Port number of socket returned by accept()

Hi, I typed a few tcp/ip client/server examples from a book and it works - sort of - but I noticed something strange. When I run my server I set it to use port 3001 and the client uses the same port to connect to server. They succeed, but the server prints something that doesn't really make much... (0 Replies)
Discussion started by: idelovski
0 Replies

6. UNIX for Advanced & Expert Users

socket programming

can we send udp message to a destination ip address .. without having an ip address configured in our machine using recvfrom ? (2 Replies)
Discussion started by: Gopi Krishna P
2 Replies

7. Programming

Help with socket programming in C

hi guys i got this code trying to make connection between the server and multi clients but when i do ./server i got message server waiting then when i run ./client it says client 1 nosuch file i dont know whats that should i use any argument plz help how to compile and run and whats the expected... (1 Reply)
Discussion started by: kedah160
1 Replies

8. Programming

socket accept() keeps looping

I'm using C/ C++ with gcc on Linux. I've a server socket where accept() is called on the socket inside a while() loop. The problem I am facing is that the first call to accept is blocking (i.e., the program waits for the first connection) but as soon as I fork afterwards (so that the child process... (2 Replies)
Discussion started by: jaywalker
2 Replies

9. Programming

socket programming

how to include socket.h in visual studio 2005.. (2 Replies)
Discussion started by: asd123
2 Replies

10. Shell Programming and Scripting

How to write a shell script to automatically accept return key with out user intervention?

Hi Friends, i am creating a shell script which is accepting file name as input parameter from Java and invoking finacle service. The service will accpet text file,B2k_session id,etc and upload the text file data in finacle database. My shell script looks like this:- #! /bin/ksh... (2 Replies)
Discussion started by: vadlamudy
2 Replies
in.h(3HEAD)							      Headers							       in.h(3HEAD)

NAME
in.h, in - Internet Protocol family SYNOPSIS
#include <netinet/in.h> DESCRIPTION
The <netinet/in.h> header defines the following types through typedef: in_port_t An unsigned integral type of exactly 16 bits. in_addr_t An unsigned integral type of exactly 32 bits. The <netinet/in.h> header defines the in_addr structure that includes the following member: The <netinet/in.h> header defines the in_addr structure that includes the following member: in_addr_t s_addr The <netinet/in.h> header defines the type sa_family_t as described in socket.h(3HEAD). The <netinet/in.h> header defines the following macros for use as values of the level argument of getsockopt() and setsockopt(): IPPROTO_IP Dummy for IP IPPROTO_ICMP Control message protocol IPPROTO_TCP TCP IPPROTO_UDP User datagram protocol The <netinet/in.h> header defines the following macros for use as destination addresses for connect(), sendmsg(), and sendto(): INADDR_ANY Local host address INADDR_BROADCAST Broadcast address The <netinet/in.h> header defines the sockaddr_in structure that is used to store addresses for the Internet protocol family. Values of this type must be cast to struct sockaddr for use with the socket interfaces. Default For applications that do not require standard-conforming behavior (those that use the socket interfaces described in section(3SOCKET) of the reference manual; see Intro(3) and standards(5)), the <netinet/in.h> header defines the sockaddr_in structure that includes the follow- ing members: sa_family_t sin_family in_port_t sin_port struct in_addr sin_addr char sin_zero[8] Standard conforming For applications that require standard-conforming behavior (those that use the socket interfaces described in section(3XNET) of the refer- ence manual; see Intro(3) and standards(5)), the <netinet/in.h> header defines the sockaddr_in structure that includes the following mem- bers: sa_family_t sin_family in_port_t sin_port struct in_addr sin_addr unsigned char sin_zero[8] ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
Intro(3), connect(3SOCKET), connect(3XNET), getsockopt(3SOCKET), getsockopt(3XNET), sendmsg(3SOCKET), sendmsg(3XNET), sendto(3SOCKET), sendto(3XNET), setsockopt(3SOCKET), setsockopt(3XNET), socket.h(3HEAD), attributes(5), standards(5) SunOS 5.10 30 Aug 2002 in.h(3HEAD)
All times are GMT -4. The time now is 03:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy