The server doesn't know how much data is being sent to it. Is the recv() call blocking or polling? If it's blocking, then you might be okay. If it's polling, you need to distinguish between "End of data" and "no more data YET".
Then there's
How does the received object (echoBuffer) know dataSize? Does the recv() call set that too? Or is it set to the maximum buffer size? In any case, it might be more (or less) than recvMsgSize, which would reflect the true number of bytes received.
Hello there chaps.
First of all, i'm no TCP/IP-wiz, so forgive me if this is a stupid question.
I've been messing around with filetransfer using sockets, and there is one thing that confuses me.
This is how it's set up:
A server app listens on a port for a client connection.
When it... (3 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)
I have what appears to be a unique socket problem, although admittedly my tcp/ip programming experience is relatively limited.
I have a AIX server process using TCP/IP berkely sockets, and a Windows (C#) process. The windows process takes input from a user and sends a message to the Unix... (1 Reply)
Hello
I try to send DHCP RENEW packets to the network and receive the responses. I broadcast the packet and I can see that it's successfully sent using Wireshark. But I have difficulties receiving the responses.I use packet sockets to catch the packets. I can see that there are responses to my... (0 Replies)
Hello,
I'm trying to write a small c application to test a tcp port. This works fine for the most part but the default timeout on the connect is very long. I have been reading many posts but and it looks like I need to set the socket to be non-blocking and poll for a result. I have been totally... (2 Replies)
Hello,
Our software is using a TCP socket (AF_INET, SOCK_STREAM) to communicate with an Ethernet device. When we send a message, the message object writes itself in full onto the socket's stream buffer before the software invokes send() from socket.h.
I'm still researching, but have 2... (1 Reply)
Hello all,
I have a requirement to read and write to a tcp socket from an HP-UX shell script. I see a /dev/tcp character device on my servers:
crw-rw-rw- 1 root root 72 0x00004f Mar 28 18:37 /dev/tcp
So I believe this is what I should use. The problem is that all the... (2 Replies)
I installed a fresh copy of Solaris 7 and present up my ip and domain for my web services but when I try to connect to it I get the following error;
TCPActiveOpen: connect failed tcp/192.168.1.148/7900: 146 (Connection refused).
the port is open in my router but I don't no were to add it in... (5 Replies)
I been looking for a good guide or some help on how to install and setup TCP-MUX protocol socket on my Solaris 7 servers.
Can anyone point me in right direction of help me ?
Thanks (5 Replies)
Hi
The clients connect to my server -using port 9130. But no client could connect to my server at this time. I've checked already and this is the result
netstat -Aan|grep -v 127.0.0.1|grep 9130|pg
f10006000abcb398 tcp4 10313 0 10.0.89.81.9130 10.158.70.24.1705 CLOSE_WAIT... (8 Replies)
Discussion started by: bobochacha29
8 Replies
LEARN ABOUT BSD
tcp
TCP(4P)TCP(4P)NAME
tcp - Internet Transmission Control Protocol
SYNOPSIS
#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 listen(2) system call must be used after binding the socket with the bind(2)
system call. Only passive sockets may use the accept(2) call to accept incoming connections. Only active sockets may use the connect(2)
call to initiate connections.
Passive sockets may "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 which listens on all
networks, the Internet address INADDR_ANY must be bound. The TCP port may 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 which is set with setsockopt(2) and tested with getsockopt(2). Under most circumstances, TCP sends data
when it is presented; when outstanding 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 which
receive no replies, this packetization may cause significant delays. Therefore, TCP provides a boolean option, TCP_NODELAY (from
<netinet/tcp.h>, to defeat this algorithm. The option level for the setsockopt call is the protocol number for TCP, available from getpro-
tobyname(3N).
Options at the IP transport level may be used with TCP; see ip(4P). Incoming connection requests that are source-routed are noted, and the
reverse source route is used in responding.
DIAGNOSTICS
A socket operation may fail with one of the following errors returned:
[EISCONN] when trying to establish a connection on a socket which already has one;
[ENOBUFS] when the system runs out of memory for an internal data structure;
[ETIMEDOUT] when a connection was dropped due to excessive retransmissions;
[ECONNRESET] when the remote peer forces the connection to be closed;
[ECONNREFUSED] when the remote peer actively refuses connection establishment (usually because no process is listening to the port);
[EADDRINUSE] when an attempt is made to create a socket with a port which has already been allocated;
[EADDRNOTAVAIL] when an attempt is made to create a socket with a network address for which no network interface exists.
SEE ALSO getsockopt(2), socket(2), intro(4N), inet(4F), ip(4P)4.2 Berkeley Distribution May 16, 1986 TCP(4P)