LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
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.

Notices

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

Rep: Reputation: 0
socket programming problem


Hello!
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
Hko
Senior Member
 
Registered: Aug 2002
Location: Groningen, The Netherlands
Distribution: ubuntu
Posts: 2,530

Rep: Reputation: 108Reputation: 108
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:
Code:
#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("127.0.0.1");
    address.sin_port = 9734;
    len = sizeof(address);
    result = connect(sockfd, (struct sockaddr *)&address, len);

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

Code:
#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("127.0.0.1");
    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);
        ch++;
        write(client_sockfd, &ch, 1);
        close(client_sockfd);
    }
}

Last edited by Hko; 03-11-2003 at 12:45 PM.
 
Old 03-09-2003, 09:05 AM   #3
karthikeyan
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........

bye..
 
  


Reply


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


All times are GMT -5. The time now is 03:49 AM.

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