Re: problem when sending data over TCP socke from c# client to jav
- From: "yaron" <yaron@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 13 Sep 2005 00:22:02 -0700
Thanks Vadym,
the problem was that the java server wait for sending Enter (new line
character) by using String str = in.readLine();
so after adding new line char to the end of the string and sending the java
server receive that string.
Thanks again.
"Vadym Stetsyak" wrote:
> you can set the option of the socket to Nagle SocketOptionName.NoDelay.
> It seems to me that Nagle algorithm may be the reason of the send delay.
> This algorithm is responsible for preventing network congestion with small
> data packets. In your case data sent was not big. You can try to send
> greater amount of data and watch for the java server...
>
> To set the option call SetSocketOptionMethod...
>
> --
> Vadym Stetsyak aka Vadmyst
> "yaron" <yaron@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> news:8D768DE5-EE5A-4530-AFFD-E4D4B40374D7@xxxxxxxxxxxxxxxx
> > Vadym,
> >
> > there is no error on the send method, just the java server doesn't get
> thet
> > data.
> > i think the problem is that there is no Socket.Flush() method , because if
> > after the sock.send i call to sock.Shutdown(SocketShutdown.Both) them the
> > java server gets the sent data.
> >
> > Thanks.
> >
> >
> > "Vadym Stetsyak" wrote:
> >
> > > What error Send is returning?
> > > Was the Connect(...) method uccessful - check Connected property of the
> > > socket.
> > >
> > > The client is not sending anything at all?
> > >
> > > --
> > > Vadym Stetsyak aka Vadmyst
> > > "yaron" <yaron@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> > > news:8EB087B7-0A11-4470-8124-51EE5CB1B5DA@xxxxxxxxxxxxxxxx
> > > > Hi,
> > > >
> > > > I have a problem when sending data over TCP socket from c# client to
> java
> > > > server.
> > > > the connection established ok, but i can't send data from c# client to
> > > java
> > > > server.
> > > > it's work ok with TcpClient, NetworkStream and StreamWriter classes.
> > > >
> > > > but with low level socket it doesn't work (When using the Socket class
> > > Send
> > > > method).
> > > > here is the sample code (c# and java):
> > > > ===========
> > > > C# Code
> > > > ===========
> > > >
> > > > public static void RunSocketTcpClient()
> > > > {
> > > > Socket sock = new Socket(AddressFamily.InterNetwork,
> SocketType.Stream,
> > > > ProtocolType.Tcp);
> > > > IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
> > > > byte[] data = new byte[1024];
> > > > string stringData;
> > > > int recv=0;
> > > > sock.Connect(iep);
> > > > data = Encoding.ASCII.GetBytes("Hello");
> > > > sock.Send(data, data.Length, SocketFlags.None);
> > > > }
> > > >
> > > > =================
> > > > The Java code
> > > > =================
> > > > //: c15:JabberServer.java
> > > > // Very simple server that just
> > > > // echoes whatever the client sends.
> > > > // {RunByHand}
> > > > import java.io.*;
> > > > import java.net.*;
> > > >
> > > > public class JabberServer {
> > > > // Choose a port outside of the range 1-1024:
> > > > public static final int PORT = 8080;
> > > > public static void main(String[] args)
> > > > throws IOException {
> > > > ServerSocket s = new ServerSocket(PORT);
> > > > System.out.println("Started: " + s);
> > > > try {
> > > > // Blocks until a connection occurs:
> > > > Socket socket = s.accept();
> > > > try {
> > > > System.out.println(
> > > > "Connection accepted: "+ socket);
> > > > BufferedReader in =
> > > > new BufferedReader(
> > > > new InputStreamReader(
> > > > socket.getInputStream()));
> > > > // Output is automatically flushed
> > > > // by PrintWriter:
> > > > PrintWriter out =
> > > > new PrintWriter(
> > > > new BufferedWriter(
> > > > new OutputStreamWriter(
> > > > socket.getOutputStream())),true);
> > > > while (true) {
> > > > String str = in.readLine();
> > > > if (str.equals("END")) break;
> > > > System.out.println("Echoing: " + str);
> > > > out.println(str);
> > > > }
> > > > // Always close the two sockets...
> > > > } finally {
> > > > System.out.println("closing...");
> > > > socket.close();
> > > > }
> > > > } finally {
> > > > s.close();
> > > > }
> > > > }
> > > > } ///:~
> > > >
> > > > Thanks.
> > > >
> > >
> > >
> > >
>
>
>
.
- References:
- problem when sending data over TCP socke from c# client to java se
- From: yaron
- Re: problem when sending data over TCP socke from c# client to java se
- From: Vadym Stetsyak
- Re: problem when sending data over TCP socke from c# client to jav
- From: yaron
- Re: problem when sending data over TCP socke from c# client to jav
- From: Vadym Stetsyak
- problem when sending data over TCP socke from c# client to java se
- Prev by Date: RE: Parse out data in a cell.
- Next by Date: Re: Updated a Textbox from a separate class
- Previous by thread: Re: problem when sending data over TCP socke from c# client to jav
- Next by thread: Complex DataGrid Binding
- Index(es):
Relevant Pages
|