Review your favorite Linux distribution.
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


  Search this Thread
Old 03-06-2003, 02:57 AM   #1
LQ Newbie
Registered: Dec 2002
Location: Iasi
Distribution: Mandrake 8.2
Posts: 12

Rep: Reputation: 0
socket programming problem

I made a class which should handle tcp comunication over a network between 2 apps. If I use this class to send data (at greater intervals of time) it works just fine. If I try to send a file's content(line by line) over the network the receiving application( which uses the same class for receiveing) seems to get only the first data message from the other end.
I tried waiting before transmission with select( n, NULL, &writefdset, NULL, &tv ) in a loop and before receive with select(n, &readfdset, NULL, NULL, &tv) in a loop but it doesn't seem to work.
For sending data I use send() and for receiving recv().
If you have any ideeas please help me!

Last edited by bgraur; 03-06-2003 at 02:59 AM.
Old 03-06-2003, 03:56 PM   #2
Senior Member
Registered: Aug 2002
Location: Groningen, The Netherlands
Distribution: Debian
Posts: 2,536

Rep: Reputation: 111Reputation: 111
I don't know send() and recv() but it sounds like a "one-message-function".
Maybe it helps if you use the more general way of transmitting data through a socket with read() and write().

Simple example (from Wrox' "Beginning Linux programming").

The client side:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

int main()
    int sockfd;
    int len;
    struct sockaddr_in address;
    int result;
    char ch = 'A';
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = inet_addr("");
    address.sin_port = 9734;
    len = sizeof(address);
    result = connect(sockfd, (struct sockaddr *)&address, len);

    if(result == -1) {
        perror("oops: client1");
    write(sockfd, &ch, 1);
    read(sockfd, &ch, 1);
    printf("char from server = %c\n", ch);
The server side:

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

int main()
    int server_sockfd, client_sockfd;
    int server_len, client_len;
    struct sockaddr_in server_address;
    struct sockaddr_in client_address;
    server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
    server_address.sin_family = AF_INET;
    server_address.sin_addr.s_addr = inet_addr("");
    server_address.sin_port = 9734;
    server_len = sizeof(server_address);
    bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
    listen(server_sockfd, 5);
    while(1) {
        char ch;

        printf("server waiting\n");
        client_sockfd = accept(server_sockfd, 
            (struct sockaddr *)&client_address, &client_len);
        read(client_sockfd, &ch, 1);
        write(client_sockfd, &ch, 1);

Last edited by Hko; 03-11-2003 at 12:45 PM.
Old 03-09-2003, 09:05 AM   #3
LQ Newbie
Registered: Feb 2003
Posts: 7

Rep: Reputation: 0
hai Bgraur

I hope hko answered your problem . I am very much interested in socket programming in linux.I hope we an contact each other for any doubts hereafter........



Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
socket programming problem...??? arunka Programming 4 10-11-2005 08:08 AM
socket programming iiit Programming 2 07-05-2005 04:02 PM
pthread socket programming problem hk_michael Programming 1 04-03-2005 08:54 PM
Socket Programming cxel91a Programming 4 03-19-2003 10:05 AM
Socket programming problem krivi Programming 3 01-14-2002 02:04 AM > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 11:45 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration