title: Java socket server with VB.NET client?
body: <p>Is this even possible? I have a java server program on a mac that I need to use to communicate back to a windows program. I have the client working in Java, but I can't seem to figure out how to get it to work in VB.net...</p>
  
  <p>Here is the Java code...</p>
  
  <pre><code>import java.io.*;
  import java.net.InetAddress;
  import java.net.Socket;
  
  public class socketClient {
  
  public static void main(String[] args) {
      /**
       * Define a host server
       */
      String host = "10.1.1.194";
      /**
       * Define a port
       */
      int port = 19999;
  
      StringBuffer instr = new StringBuffer();
      String TimeStamp;
      System.out.println("SocketClient initialized");
  
      try {
  
           //Obtain an address object of the server
          InetAddress address = InetAddress.getByName(host);
  
  
          //Establish a socket connection
          Socket connection = new Socket(address, port);
  
          //Instantiate a BufferedOutputStream object  
          BufferedOutputStream bos = new BufferedOutputStream(connection.getOutputStream());
  
          /**
           * Instantiate an OutputStreamWriter object with the optional
           * character encoding.
           */
          OutputStreamWriter osw = new OutputStreamWriter(bos, "US-ASCII");
  
          TimeStamp = new java.util.Date().toString();
          String process = "Initiate file transfer on " + host + " port " + port
                  + " at " + TimeStamp + (char) 13;
  
          //Write across the socket connection and flush the buffer
          osw.write(process);
          osw.flush();
  
  
          /**
           * Instantiate a BufferedInputStream object for reading /**
           * Instantiate a BufferedInputStream object for reading incoming
           * socket streams.
           */
          BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());
          /**
           * Instantiate an InputStreamReader with the optional character
           * encoding.
           */
          InputStreamReader isr = new InputStreamReader(bis, "US-ASCII");
  
  
          //Read the socket's InputStream and append to a StringBuffer
          int c;
          while ((c = isr.read()) != 13) {
              instr.append((char) c);
          }
  
          //Close the socket connection.
          connection.close();
          System.out.println(instr);
      } 
      catch (IOException f) 
      {
          System.out.println("IOException: " + f);
      } 
      catch (Exception g) 
      {
          System.out.println("Exception: " + g);
      }
  }
  }
  </code></pre>
  
  <p>And here is my VB.NET code that I have so far...</p>
  
  <pre><code>Private clientSocket As Socket
  Private host As String = "10.1.1.194"
  Private port As Integer = 19999
  
  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  
      Try
  
  
          Dim add As New IPEndPoint(IPAddress.Parse(host), port)
  
          clientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
  
          clientSocket.Connect(add)
  
          Dim netStream As New NetworkStream(clientSocket, True)
  
  
  
          Dim outstream As Byte() = System.Text.Encoding.ASCII.GetBytes("Initiate file transfer from " _
          &amp; System.Environment.MachineName &amp; " on " &amp; host &amp; " port " &amp; port &amp; " at " &amp; TimeOfDay)
  
  
          netStream.Write(outstream, 0, outstream.Length)
          netStream.Flush()
  
      Catch ex As Exception
          Debug.Write(ex.Message)
      End Try
  
  
      End Sub
  </code></pre>
  
  <p>Now, if I run the vb code, it hangs... and nothing appears in my console on the mac (Like it does when I use the java client), however, when I close the VB code, I get the java.net.SocketException: Connection reset error, so I must be getting pretty close to figuring this out.</p>
  
  <p>The thing is, I know almost nothing when it comes to socket programming, so if someone could push me in the right direction, it would be very appreciated!</p>