Multiple connections on a single socket simultaneously

Hey everybody,
Can a single socket on a client establish connections with different ports on a server at the same time?? I am awaiting for your replies.
Thanks,
Mani.

No.

Similar Messages

  • Multiple OutputStreams to a single socket

    Hi,
    I searched the forums but could not find an answer for this.
    I have a socket between a server and a client and am already using an output stream to send information via this output stream.
    Now, I want to use another thread and another output stream to the same socket to send more data to the client. Is this possible? Are there synchronization problems or would the messages from both threads clutter each other in the socket? Is the multiplexing between the (text) messages from the 2 streams done in the lower layers of the TCP socket? Can I get away with using this or should I redesign my means of communication? I might also move towards object serialization in the future for my messages.
    I wrote two sample programs and the result looks ok, but I want to check to see if there are no issues with this. The test client creates 3 threads that get different output streams from the same socket and then send their name to the server independently and randomly. The server receives text messages via the socket and prints them out. I do flush all me messages and only send text messages. From the output it looks like the messages are not clobbered and are received randomly. I also did the test without the randomness and saw no problems.
    thanks,
    Clive.
    My server code:
    import java.io.*;
    import java.net.*;
    public class EchoServer {
      public static void main(String[] args) throws IOException {
        Socket echoSocket = null;
        PrintWriter out = null;
        BufferedReader in = null;
        try {
          System.out.println("Starting server... ");
          ServerSocket serverSocket = new ServerSocket(60000);
          System.out.println("Waiting for client at 60000 ... ");
          echoSocket = serverSocket.accept();
          System.out.println("Connected to client at 60000");
          in = new BufferedReader(new InputStreamReader(
                                      echoSocket.getInputStream()));
        } catch (UnknownHostException e) {
          System.err.println("Don't know about host: " + e.getMessage());
          System.exit(1);
        } catch (IOException e) {
          System.err.println("Couldn't get I/O for "
                             + "the connection to: " + e.getMessage());
          System.exit(1);
        String userInput;
        while ((userInput = in.readLine()) != null) {
          System.out.println("echo: " + userInput);
        System.out.println("Closing the socket");
        in.close();
        echoSocket.close();
      } // main
    }My client code:
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class EchoClient {
      public EchoClient() {
        Socket echoSocket = null;
        PrintWriter out1 = null;
        BufferedReader in = null;
        MyWriter thread1 = null;
        MyWriter thread2 = null;
        MyWriter thread3 = null;
        try {
          System.out.println("Connecting to localhost");
          echoSocket = new Socket("localhost", 60000);
          thread1 = new MyWriter(echoSocket, "name1");
          thread1.start();
          thread2 = new MyWriter(echoSocket, "name2");
          thread2.start();
          thread3 = new MyWriter(echoSocket, "name3");
          thread3.start();
        } catch (UnknownHostException e) {
          System.err.println("Don't know about host: " + e.getMessage());
          System.exit(1);
        } catch (IOException e) {
          System.err.println("Couldn't get I/O for "
                             + "the connection to: " + e.getMessage());
          System.exit(1);
      } // cons
      public class MyWriter extends Thread {
        PrintWriter out = null;
        String name;
        public  MyWriter(java.net.Socket socket, String name) {
          super(name);
          try {
            out = new PrintWriter(socket.getOutputStream(), true);
            this.name = name;
          } catch (IOException ioe) {
            System.err.println("Could not get output stream for " + name);
        public void run() {
          String userInput;
          Random r = new Random();
          boolean myTruth = true;
          try {
            while(myTruth) {
              out.println( this.name );
              System.out.println("sent " + this.name);
              Thread.sleep(r.nextInt(200));  // send the info randomly
          } catch(InterruptedException ie) {
            System.err.println("Could not wait for " + name);
          out.close();
      } // class MyWriter
      public static void main(String[] args) throws IOException {
        EchoClient echo = new EchoClient();
      } // main
    }Server Output:
    Connected to client at 60000
    echo: name1
    echo: name2
    echo: name3
    echo: name1
    echo: name2
    echo: name3
    echo: name1
    echo: name2
    echo: name3
    echo: name3
    echo: name1
    echo: name2
    echo: name3
    echo: name1
    echo: name1

    It is certainly doable, but you'll need to do some work here.
    Probably what i would do is write a Multiplexor stream that sits on top of the raw tcp stream.
    Implement this stream to implement synchronization such that only one client stream can write at a time. Further each stream should have a unique id associated with it, and registered with the base Multiplexor stream, so that when it writes into the down stream, it can prefix the data with its id. In that way the reader of the stream can see where to forward the data to.
    If some other stream tries to write to the Base Multiplexor stream an exception should be thrown, since it hasn't registered itself.
    There is a book by Manning that is pretty good in this area.
    http://www.manning.com/Hughes/

  • Transferring multiple files over a single socket

    I'm trying to send multiple files to a client without creating a new socket for each file and I'm undeceided on the best approach. The problem is that if the client is just reading from a socket, it won't know when one file stops and the next begins (assuming that the server side is just writing byte data to the socket). I could use an ObjectStream, but then I can't create a nifty progress bar. I could transfer the byte length of each file so that the client knows how much to read, but this seems messy. Is there a better approach?

    Method 1: send file length first. Simple way. Downside: if the file size changes on disk while you are sending it you may be in trouble - what if the file is truncated or there is an IO error so you can't send as many bytes as you promised.
    Method 2: use an end-of-file indicator. E.g. "." on a line by itself. If the file contains a "." on a line you'll need to quote it - e.g. the SMTP mail protocol uses "..", and "..." for two periods, etc. Needs a bit of extra code to do the quoting and detecting the EOF marker.
    Method 3: send "packets". Send a "packet header" followed by data, e.g.:
    HERECOMES C:\fred.txt
    DATA 1024 <...1024 bytes...>
    DATA 1024 <...1024 bytes...>
    DATA 120 <...last 120 bytes...>
    END OF FILE HAVE A NICE DAY
    You can make the "packet header commands" binary ('\001' = file begins, '\002' = data segment, ...) or sort of human readable like SMTP and HTTP do. The former can be a bit easier to implement, the latter is nice because you can debug it easier and try it out with "telnet".

  • Mulitple connections with a single add on

    Is it possible to have multiple connections within a single add- on?  I'm trying to combine multiple add-ons into a single add-on.
    Thanks for your help.
    Shea

    Hi Shea,
    I'm afraid I don't understand your question. If you are merging multiple add-ons in to one add-on then why wouldn't you share the same connection? After all, this would be the main benefit in merging them. Could you clarify why you need multiple connections please? Are you linking to more than one company at the same time?
    It is possible to open multiple connections. All you need to do is create multiple instances of the DI API company object.
    Kind Regards,
    Owen

  • How can I connect multiple clients to a single client ?

    I am currently developing an instant messaging program.I created a server and connected multiple clients to it by using thread logic.However I do not know how to connect multiple client to a single client.
    What shall I do for that?Does anybody know a good tutorial or sample program?Or shall anybody explain me what I shall do for building the Instant Messaging part of my chat program?
    Thank u in advance.

    You may use UDP multicast socket. But since you are using the UDP protocol you might risk losing the data that you send since UDP does not guarantee the safe transfer of data.
    Alternately, you might create a server that allows multiple client to connect to it whose connection Socket objects are then stored in a Vector <Socket> object. The server then sends back data to the connected client about the other clients connected to it. Now when the client wants to send data (like an IM) to another connected client, it has to send a request to the server specifying the client login name and the server in turn streams that particular client's Address and Port to the requesting client. The requesting client then initiates the connection with the other client and then starts a conversation. One more thing, when the client communicates it needs to send information to the server like the name by which it likes to be referenced. In this scenario the server acts like a central repository for clients to query the existence of other clients in the chat room. Each client here runs a thread that listens to incoming connections and when a connection is established, may be opens a IM window or something.
    The third option is to make the server to relay the information from one client to another. Like say, I'm connected to whoopy server and i want to send "Hello" to jackson, then i send the message (ie, Hello) along with the name of the client to which i wish to send it to (ie, jackson). The server then performs a lookup in its Vector <Socket> object and then initiates a connection with jackson and sends the information. However, this method is pretty costly in that you will be wasting a lot of processing behind the server.
    --Subhankar
    P.s. If you stumble upon any other brilliant ideas let me know.

  • Multiple sessions in a single database connection.

    I have copied the following text from Forms Developer2000
    "At runtime, Form Builder automatically establishes and manages a single connection to ORACLE. By default, one user session is created for this connection. However, the multiple-sessioning feature of ORACLE allows a single client to establish multiple sessions within a single connection. ORACLE transaction-management and read-consistency features all are implemented at the session level, so creating multiple sessions allows a single user to have multiple, independent transactions."
    If ORACLE allows a single client to establish multiple sessions within a single connection, I want to leverage on this feature in my application which uses BC4J.
    Can anybody tell me if
    1. its possible achieve this in Java(BC4J).
    2. If Yes, How?
    regards,
    vikrant

    Thank you for your valuable suggestion.
    I believe createing multiple root Application
    Modules, will create as many number of connections to
    database, hence multiple transactions.
    But What I wanted was multiple sessions in a single
    connection, who's behavior will be similar to two
    different connections.Could you tell me the advantage you're looking for in multiple sessions in one connection vs. multiple connections (where connections may be pooled)?
    Thanks.
    Sung

  • Multiple DataBase Connection in a Single Form

    hi all
    Is it Possible to have Multiple Database Connection With a Single Form
    Block a : Retriving data from a database Service a/Schema A.
    Block b : Retriving data from a Remote Database Service b / Schema B.
    If yes how to do this.
    regards
    jai
    email:[email protected]

    Sure you can access a database this way,
    but can you base a block on this database connect? No you can't.
    Frank

  • How to get active monitor-Multiple monitors connected to a single machine.

    Hi,
    How to get the id of active graphic device, in case of multiple graphic devices connected to a single machine(Multi-headed display/ multi headed nodes) using Swing.
    Prashanth.

    Ah, youre actually asking different things.
    In your topic title, you say youre running separate instances
    In your body text, you say you are under different user/schema
    So tell me, do you have more than one database or not? How many entries in your TNS file?
    I would say, for "multiple database instances"
    SELECT
      a.id, b.id
    FROM
      tableA a
      INNER JOIN
      tableB@OTHER_DATABASE_LINK_NAME b  <--NOTE!
      USING(id)And of course you will have to look up CREATE PUBLIC DATABASE LINK sql..
    Message was edited by:
    charred

  • Possibility of connecting multiple BW systems to single ECC system

    Hi all,
    I have a requirement in my company to connect multiple BW systems to single ECC system. Would like to confirm whether this may not be supported by all BW extractors in particular the delta mechanism?
    For logistics extractor in ECC side in RSA7 it stores BW System as target which shows they support multiple BW systems as target, but for FI extractors which keeps delta timestamps in BWOM2_TIMEST table, it doesn't store the target system. I'm afraid if we connect multiple BW systems to single ECC system, some of the delta records might go to one BW system and some others go to the other BW system when we execute delta load in both BW systems.
    Thank you very much in advance.
    regards,
    arie

    Hi,
    You can very well connect multiple BW systems to single ECC system and you will not miss any delta as well. In the source system for each delta data source a delta queue is maintained for each target system.
    for e.g. I have two BW systems ABW and BBW connected to AEC system then for 0FI_AP_4 data source we will have DQ1_ABW and DQ2_BBW as two different delta queues (I am not following any naming conventions, actual names will be as per the target system logical name).
    The settings maintained in BWOM2_TIMEST table are across the system and they define some global settings e.g. till what time the FI data should be extracted in BW system, for e.g. the time maintained is 2.00 AM then though you do extraction from multiple systems same data will be extracted till next time interval occurs.
    In summery you can very well connect multiple BW systems to a single ECC system.
    Regards,
    Durgesh.

  • How to Create a Single Backend Socket connectivity in a Server Socket Pgm

    Hi Everybody,
    I have a written a Server Socket which connects to back end socket and receiving the data and sending back to the front end. But as per my client requirement i need to create only one socket at the back end. But the code I have written is creating new sockets for each request. Is there any way to use the single client socket connection for all the transactions. I have attached the sample code for the reference.
    import java.io.*;
    import java.net.*;
    import java.nio.ByteBuffer;
    import java.nio.channels.SocketChannel;
    public class serl implements Runnable
    ServerSocket serversocket;
    Socket clientsoc;
    Socket fromclient;
    PrintStream streamtoclient;
    BufferedReader streamfromclient;
    SocketChannel socket_channel=null;
    Thread thread;
    public serl()
    try
    serversocket = new ServerSocket(1001);//create socket
    clientsoc = new Socket("10.100.53.145",200);
    socket_channel = clientsoc.getChannel();
    catch(Exception e)
    System.out.println("Socket could not be created "+e);
    thread=new Thread(this);
    thread.start();
    public void run()
    try
    while(true)
         PrintStream streamtobackend=null;
         BufferedReader streamfrombackend = null;
    fromclient=serversocket.accept();//accept connection fromclient
    streamfromclient=new BufferedReader(new InputStreamReader((fromclient.getInputStream())));
    //create a input stream for the socket
    streamtoclient=new PrintStream(fromclient.getOutputStream());
    //create an a output stream for the socket
    String str=streamfromclient.readLine();
    //read the message sent by client
    System.out.println("Output Input From Vtcpd "+str);
    streamtobackend.print(str);
    streamtobackend = new PrintStream(clientsoc.getOutputStream());
    //create an a output stream for the backend socket
    streamfrombackend = new BufferedReader(new InputStreamReader(clientsoc.getInputStream()));
    //create a input stream for the backend socket
    str=streamfrombackend.readLine();
    System.out.println("Output From Backend Client"+str);
    streamtoclient.println(str);
    }//end of while
    catch(Exception e)
    System.out.println("Exception "+e);
    finally
    try
    fromclient.close();
    catch(Exception e)
    System.out.println("could not close connection "+e);
    public static void main(String ar[])
    new serl();
    }

    Srikandh,
    Create a singelton pattern for you socket ( IP, port, etc..) and each time you read the input stream and write to the output stream, do the following to the socket to reset it in the working thread
    fromclient.getInputStream().mark(0);
    fromclient.getInputStream().reset();Hope this could help
    Regards,
    Alan Mehio
    London,UK

  • Single  bill for multiple connections

    Dear All,
    Is it possible to print single bill for multiple connections ? This is my requirement Customer X having 2 connections for Water and 2 connections for Electricity.But we need to bill Electricity and water in a different bill ,but 2 connections for water and 2 connections for electricity should be billed in a single bill.We have created a separate contract accounts for 4 connections.
    Pls guide...
    Best Regards
    Jay

    Hi,
    I am not sure, if i completely understand your requirement.
    But as per my understanding, you have 4 installations, ( 2 for Water and 2 for Electricity) and you want to have a single invoice created for Electircity and water.
    So, its better to create a single contract account with multiple contracts.
    If you are creating multiple contract accounts, then it would create multiple invoices (one per contract account - regular scenario). So, please have a multiple contracts with single CA.
    Also, if you want to invoice all the contracts together, please find the option on contract for joint invoicing. (option 1).
    And, in case you want to bill two connections of electricity as one entity and two of water as one, so in this case, have two contract accounts one for Electricity and one as a part of water. And assign all the electricity contract to one CA and rest of water to another CA.
    Invoices are always created at contract account level and the billing documents are created at contract level.
    Hope this helps !!
    Regards,
    Rajesh Popat

  • Creating Multiple LibrarySession (Connection Pool), Using single LibraryService

    Hello,
    I am trying to create multiple LibrarySession with a single LibraryService, so that each user can pick a new session from a pool and release LibrarySession back to the pool, when the user task is been completed.
    Question.
    1. Is it possible to create LibrarySession Pool ?
    2. If yes, Can any one suggest, whether there will be any improvement in the performance of the application by doing so, or Oracle IFS internally handles the connection pool mechanism for LibrarySession.
    3. Does Oracle IFS handle LibrarySession pool internally.
    If there is any code, which does similar action, please do forward.
    Best Regards
    Sujeem Haries

    Sujeem, we do not pool LibrarySession instances for you. You may see a performance improvement if you maintain a LibrarySession pool, depending on the application. See the following post for more info:
    Oracle Security & PAM
    Please note that although LibrarySession instances are not pooled for you, the underlying database connections are pooled.

  • Single jdbc connection opens multiple connections to sql server

    Hello!
    I'm having a bad problem, because one jdbc connection opens multiple connections to the sql server. I'm working with the open source jdbc driver jtds and the ms sql server. Because I'm using temporary tables that are only visible to one database connection, my code doesn't work. Is this a bug in jtds or is this the normal behaviour of a java.sql.Connection?
    Here a code example:
    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    conn = DriverManager.getConnection(
    "jdbc:jtds:sqlserver://"+dbConnDef.getServer()+"/"+dbConnDef.getDatabase(),
    dbConnDef.getUserName(),
    dbConnDef.getUserPasswd()
    Statement stmt = conn.createStatement();
    stmt.executeUpdate("SET DATEFORMAT YMD");
    stmt.close();
    stmt = conn.createStatement();
    stmt.executeUpdate("CREATE TABLE #tmp (FieldA INT NOT NULL)");
    stmt.close();
    stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM #tmp");
    stmt = conn.createStatement("SELECT FieldA AS sthElse FROM #tmp");
    ResultSet rs2 = stmt.executeQuery("SELECT * FROM #tmp");
    // the strange thing is, that this second query does NOT yet open a
    // new connection, but the next sql command does.
    stmt = conn.createStatement();
    stmt.executeUpdate("DROP TABLE #tmp");
    stmt.close();
    Why is it behaving that strange way? It is absolutely necessary, that EVERYTHING that I do with my connection is really done on the same connection to the SQL server! How can I force a java.sql.Connection not to open multiple sql-server-connections?
    It is very urgent, thus, PLEASE HELP!!!
    Thousand thanks in advance! Marco.

    ...but that means, that the jdbc driver I use, is not working properly, because it should work the following way (please correct me, if I misunderstood the concept):
    I create a Connection object which should represent exactly one physical connection to the database. Then I can create as many Statement instances by conn.createStatement() as I want. There should still exist only one physical connection.
    With each of my Statement objects, I can create one result set.
    This means, I should be able to create as many result sets as I want to with only one Connection object (and therefor one physical connection) by creating multiple Statements, right?!
    If this is correct, the concept is perfect for me and exactly as I'm used to it by other programming languages. Then, only my jdbc driver does not work properly which means I either have to replace it by another one or change it myself (it's open source).

  • Multiple selects() within a single VM

    Is anyone aware of any contention issues when running multiple threads within a VM where each thread has it's own select statement?
    I have an home grown app server that allows me to run multiple applications within a single VM. The applications are unrelated however they sometimes communicate with each other via TCP. All of them are very network intensive ( 500 messages a second where each message is around 200 bytes ). These apps are usually single threaded where the main thread is a select() loop.
    Therefore, each application is a single threaded select() loop but there are multiple applications running within a single VM.
    I am seeing performance issues when two apps running within the same VM try to send messages to one another via TCP. When the two apps are running on different boxes one app can send about 10,000 messages a second to the other app. However, when the apps are running within the same VM ( localhost TCP connection ) I can only transfer about 1000 messages a second.
    Are 2 selectors running within the same VM a problem? Is it synchronized within the VM so that only one select can fire at a time?
    I am running on a dual proc RH3 box with plenty of memory.
    Any ideas?

    Works for me, though I'm trying on Windows. Test program below. I get >10,000 replies and responses per second over loopback with both "java SelectPingPong both" (one VM) and running client and server on separate VMs.
    Does this program get only 1000 messages/s on Linux? What VM version?
    import java.util.*;
    import java.net.*;
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    public class SelectPingPong
        private static final int MESSAGE_SIZE = 200;
        private String server_name;
        private Selector selector;
        private HashMap clients = new HashMap();
        static class Client
         ByteBuffer buf = ByteBuffer.allocate(MESSAGE_SIZE);
         long connect_time = System.currentTimeMillis();
         int number_of_messages;
        public SelectPingPong(int port, String server_name)
         throws IOException
         this.server_name = server_name;
         selector = Selector.open();
         ServerSocketChannel server_channel = ServerSocketChannel.open();
         server_channel.configureBlocking(false);
         server_channel.socket().bind(new InetSocketAddress(port));
         server_channel.register(selector, SelectionKey.OP_ACCEPT);
        public Socket connect(String host, int port)
         throws IOException
         SocketChannel channel = SocketChannel.open();
         Socket socket = channel.socket();
         socket.connect(new InetSocketAddress(host, port));
         configureSocket(socket);
         channel.configureBlocking(false);
         channel.register(selector, SelectionKey.OP_READ);
         clients.put(channel, new Client());
         return socket;
        private void configureSocket(Socket socket)
         throws IOException
         // Let's say we have a request-reply protocol with modest requirements
         socket.setReceiveBufferSize(1024);
         socket.setSendBufferSize(1024);
        public void mainLoop()
         while (true) {
             try {
              selector.select();
              for (Iterator iter = selector.selectedKeys().iterator(); iter.hasNext(); ) {
                  SelectionKey key = (SelectionKey) iter.next();
                  iter.remove();
                  if (!key.isValid())
                   continue;
                  if (key.isAcceptable())
                   acceptClient(key);
                  if (key.isReadable())
                   readFromClient(key);
             } catch (Exception e) {
              System.out.println(server_name + ": error in selector loop: " + e);
              e.printStackTrace();
        private void acceptClient(SelectionKey key)
         throws IOException
         ServerSocketChannel server_channel = (ServerSocketChannel) key.channel();
         if (server_channel == null)
             return;
         SocketChannel channel = server_channel.accept();
         if (channel == null)
             return;
         configureSocket(channel.socket());
         channel.configureBlocking(false);
         channel.register(selector, SelectionKey.OP_READ);
         clients.put(channel, new Client());
         System.out.println(server_name + ": got a new client; " +
                      clients.size() + " clients");
        private void readFromClient(SelectionKey key)
         throws IOException
         SocketChannel channel = (SocketChannel) key.channel();
         Client client = (Client) clients.get(channel);
         ByteBuffer buf = client.buf;
         int count;
         try {
             count = channel.read(buf);
         } catch (IOException e) {
             System.out.println(server_name + ": error reading, closing connection: " + e);
             clients.remove(channel);
             channel.close();
             return;
         if (count == -1) {
             clients.remove(channel);
             System.out.println(server_name + ": client disconnected; " +
                          clients.size() + " clients");
             channel.close();
             return;
         if (buf.position() == MESSAGE_SIZE) {
             if (++client.number_of_messages % 10000 == 0) {
              long now = System.currentTimeMillis();
              System.out.println(server_name + ": " + client.number_of_messages +
                           " messages in " + (now - client.connect_time) + " ms");
             buf.flip();
             // RFE write without blocking
             writeFully(channel, buf);
             buf.rewind();
        public static void writeFully(SocketChannel channel, ByteBuffer buf)
         throws IOException
         while (buf.remaining() != 0)
             channel.write(buf);
        private static void startClient()
         throws Exception
         SelectPingPong client = new SelectPingPong(6667, "client");
         Socket socket = client.connect("localhost", 6666);
         // Send initial message
         ByteBuffer buf = ByteBuffer.allocate(MESSAGE_SIZE);
         buf.put(new byte[MESSAGE_SIZE]);
         buf.flip();
         socket.getChannel().write(buf);
         client.mainLoop();
        public static void main(String args[])
         throws Exception
         if (args.length == 1 && args[0].equals("server")) {
             SelectPingPong server = new SelectPingPong(6666, "server");
             server.mainLoop();
         } else if (args.length == 1 && args[0].equals("client")) {
             startClient();
         } else if (args.length == 1 && args[0].equals("both")) {
             new Thread() { public void run() {
              try {
                  SelectPingPong server = new SelectPingPong(6666, "server");
                  server.mainLoop();
              } catch (Exception e) {
                  System.err.println("error in server");
             } }.start();
             startClient();
         } else {
             System.err.println("usage: SelectPingPong [client | server | both]");
    }

  • A single socket with a reader thread and a writer thread

    Could a socket handle reading and writing simultaneously? If it could, are there any impact?
    Thanks

    With a single socket, a client sent , for example, the first 10 IP packages and wait for the server acknowledge.TCP does that asynchronously from the application.
    If the server noticed that the 7th package was corrupted, then the client need to resend the 7th package.TCP does that asynchronously from the application.
    This could imply there were some idle times on both the client and server.Not at the client. TCP does all that asynchronously from the application. Data is written from the application into the socket send buffer and then the client continues execution. All the segmentation and packetization and acknowledgement and retry is asynchronous from the application. There is a delay at the server but's that's because all the data hasn't arrived, innit? so it's unavoidable. But in practice very few packets are lost and TCP runs at pretty much full speed all the time.
    You still haven't clarified whether you're talking about your code or TCP, but if you're not talking about what TCP does, you must be trying to build all this stuff into your application, which I've already spoken about as redundant at best and highly counter-productive at worst.
    If I open multiple sockets between the client and the server, these idle times would be minimize since the client , while waiting for the acknowledge, could send data to other sockets.This is fallacious for the reasons given above.

Maybe you are looking for

  • SAP 4.6C hangs when Brtools run after oracle upgrade 10.2.0.4

    Hi All, We have Upgraded the Oracle 9i to 10.2.0.4 for sap 4.6C production machine. After the upgrade the sap was succesfully able to start. even i can see the version was reflected in the sap system status. in the Opatch lsinventory all the bug fixe

  • Wma to mp3 converter

    I downloaded a conversion program "wma to mp3 converter" to be able to listen to wma music files in my computer. However when I click on the file, just the programmers' codes appear, nothing else. How can I activate the converter program? That is, ho

  • JMS Adapter not picking file in PI7.0

    Hello, I am working jms to jms scenario on PI7.0 Service Pack13. file is not able to pick up sendar JMS Channel. I am using WebSphereMQ Transport Protocol. JMS drivers are installed. ports and protocals are correct. I checked all parameters of JMS Ad

  • Installing Adobe Flash Player on A7600H tablet

    I might be being a bit dense here, as I know there's already a similar thread started, but it didn't seem to answer my question. I have just bought my first tablet the A7600H, but when I tried to download Adobe Flash Player it said that it isn't supp

  • An error occurred installing iOS 5.0.1

    Getting the following message when trying to update:  "An error occurred installing iOS 5.0.1" I can't seem to clear it or proceed past it.  Any suggestions. (iPhone 4)