Sponsored Content
Top Forums Programming Problem and question with TCP Post 302934203 by Corona688 on Thursday 5th of February 2015 09:56:01 AM
Old 02-05-2015
Quote:
Originally Posted by Kovalevski
It is a very good point the MTU length, first of all thank you for this info because I didn't know , but when I tested the program, many messages arrived to the server
How large are your messages?

TCP is not received in dependably-sized chunks, it is a stream. If they sent 30 bytes and you only read 2, that's okay, just read 28 more. Conversely, if they sent 5000 bytes and you got 1000, just keep reading, you'll get the rest eventually.

If the lengths are variable, you should encode them as part of the stream. Otherwise you won't know how much to expect and, as you've discovered, getting the "right" size from recv() is not dependable, mostly because there is no such thing.

I'm guessing you overloaded it until it was unable to cope. It started delivering data immediately instead of bundling multiple packets together politely.

Or, the server might even have been running out of memory. No kind of connection can cope with that. Each TCP connection takes a good chunk of it.

Last edited by Corona688; 02-05-2015 at 11:15 AM..
 

10 More Discussions You Might Find Interesting

1. IP Networking

tcp problem with port

I am trying to connect via DBACCESS and Informix server to a server on a different computer. When I execute the connect command from dbaccess I get the following message, Exec format error cannot bind a name to the port. As far as I know the port is not being used by another client. How... (1 Reply)
Discussion started by: lopez
1 Replies

2. IP Networking

WinXP and TCP/IP Problem

Hi Eveyone, I have A small problems maybe some one can help me. I'm running a small network at home with internet access. Two PC's have Win XP and one has Win98se. I have them all hook up on a SMC router. ALL windows firewall are off and and harddrive sharing is on. I am using DCHP network... (3 Replies)
Discussion started by: Peterh
3 Replies

3. Solaris

TCP Problem

I am running a Java Client on Solaris 9 which communicates with the Server using TCP/IP. The client transmits a FIN packet to server. The server sends a ACK, FIN enters LAST_ACK state and then waits for ACK from client. The client did not respond back leaving the server in LAST_ACK itself. Also... (0 Replies)
Discussion started by: diarun
0 Replies

4. Programming

TCP status question

There is a server and a client,when client send a message to server,server can send a reply to client. The status of server and client is ESTABLISHED.Then I halt the client,I find the server status is CLOSE_WAIT and the client status is FIN_WAIT_2. Many minutes passed,I find the the server status... (1 Reply)
Discussion started by: konvalo
1 Replies

5. Programming

C & TCP question: AF_INET vs AF_UNIX

Greetings! I am attempting to write a *basic* network client in C. I have manage to create a socket but I have doubts as far as using AF_INET vs AF_UNIX. At the present time, my client runs with AF_INET. Is AF_UNIX faster across hosts using the same OS flavor (Red Hat)? What is the difference... (1 Reply)
Discussion started by: Alan Christen
1 Replies

6. Red Hat

tcp/ip problem

how the data from disk is loaded into memory and then it transfered to tcp/ip packet. how i can find how many pages are loaded into memory by that process what is the rate of context switch for that process. (5 Replies)
Discussion started by: amar20
5 Replies

7. Shell Programming and Scripting

tcp/ip and memory problem

how the data from disk is loaded into memory and then it supplied to tcp/ip packet. how i can trace the no of pages loaded in memory by that process and rate of context switch for that process. (1 Reply)
Discussion started by: amar20
1 Replies

8. Programming

Problem with tcp server

Hello @ all, I hope you can give me some advice :b: I will be following code for a tcp server and doStuff () function, the clients treated. From some point, I have several identical clients (zombies, I think), the same records in the database write. Has anyone an explanation? What can I... (1 Reply)
Discussion started by: yumos
1 Replies

9. IP Networking

Wireshark TCP and HTTP question.

Hello all. This is my first post and thank you for your forum. Here is my question. I have a simple setup at home and I was capturing some data with wireshark. Data between a workstation and the web server, requesting a page. Simple enough. Now when I open wireshark, I apply the TCP... (4 Replies)
Discussion started by: squaresphere
4 Replies

10. UNIX for Advanced & Expert Users

Bizzare TCP/IP problem

Hi all. I have a really really weird problem that I've been working on for days. The problem manifested as users cannot connect to our web servers via SSH when they're using our wireless network. Here's where it gets weird: - Clients from anywhere other than the wireless subnet can... (4 Replies)
Discussion started by: pileofrogs
4 Replies
tcp(4p) 																   tcp(4p)

Name
       tcp - Internet Transmission Control Protocol

Syntax
       #include <sys/socket.h>
       #include <netinet/in.h>

       s = socket(AF_INET, SOCK_STREAM, 0);

Description
       The  TCP  protocol  provides  reliable,	flow-controlled,  two-way  transmission of data.  It is a byte-stream protocol used to support the
       SOCK_STREAM abstraction.  TCP uses the standard Internet address format	and,  in  addition,  provides  a  per-host  collection	of  ``port
       addresses''.   Thus,  each address is composed of an Internet address specifying the host and network, with a specific TCP port on the host
       identifying the peer entity.

       Sockets utilizing the TCP protocol are either ``active'' or ``passive''.  Active sockets  initiate  connections	to  passive  sockets.	By
       default	TCP  sockets  are created active; to create a passive socket the system call must be used after binding the socket with the system
       call.  Only passive sockets can use the call to accept incoming connections.  Only active sockets can use the call to initiate connections.

       Passive sockets can ``underspecify'' their location to match incoming connection requests from multiple networks.  This	technique,  termed
       ``wildcard addressing'', allows a single server to provide service to clients on multiple networks.  To create a socket that listens on all
       networks, the Internet address INADDR_ANY must be bound.  The TCP port can still be specified at this time.  If the port is not	specified,
       the  system  will  assign one.  Once a connection has been established,	the socket's address is fixed by the peer entity's location.   The
       address assigned the socket is the address associated with the network interface through which packets are being transmitted and  received.
       Normally, this address corresponds to the peer entity's network.

       TCP  supports  one  socket option that is set with and tested with Under most circumstances, TCP sends data when it is presented; when out-
       standing data has not yet been acknowledged, it gathers small amounts of output to be sent in a single packet, once an  acknowledgement	is
       received.   For a small number of clients, such as window systems that send a stream of mouse events that receive no replies, this packeti-
       zation may cause significant delays.  Therefore, TCP provides a Boolean option, TCP_NODELAY (from to defeat  this  algorithm.   The  option
       level for the call is the protocol number for TCP, available from

Diagnostics
       A socket operation may fail with one of the following errors returned:

       [EISCONN]	   Try to establish a connection on a socket which already has one.

       [ENOBUFS]	   The system runs out of memory for an internal data structure.

       [ETIMEDOUT]	   A connection was dropped due to excessive retransmissions.

       [ECONNRESET]	   The remote peer forces the connection to be closed.

       [ECONNREFUSED]	   The remote peer actively refuses connection establishment (usually because no process is listening to the port).

       [EADDRINUSE]	   An attempt is made to create a socket with a port that has already been allocated.

       [EADDRNOTAVAIL]	   An attempt is made to create a socket with a network address for which no network interface exists.

See Also
       getsockopt(2), socket(2), inet(4f), intro(4n), ip(4p)

																	   tcp(4p)
All times are GMT -4. The time now is 07:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy