用VB.NET客户端的Java套接字服务器?

这甚至有可能吗? 我有一个mac服务器程序,我需要用来沟通回窗口程序。 我有客户端在Java工作,但我似乎无法弄清楚如何让它在VB.net中工作…

这里是Java代码…

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); } } } 

这是我迄今为止的VB.NET代码

 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 " _ & System.Environment.MachineName & " on " & host & " port " & port & " at " & TimeOfDay) netStream.Write(outstream, 0, outstream.Length) netStream.Flush() Catch ex As Exception Debug.Write(ex.Message) End Try End Sub 

现在,如果我运行的VB代码,它挂起…没有什么会出现在我的控制台上的Mac(像我使用Java客户端时),但是,当我closuresVB代码,我得到了java.net .SocketException:连接重置错误,所以我必须得到非常接近的解决这个问题。

问题是,在socket编程方面我几乎什么都不知道,所以如果有人能把我推向正确的方向,那将是非常感激的!

这甚至有可能吗?

是。

我没有看到你在你的VB.NET例子中的任何地方写回车(13)字符,但你期望它出现在Java端,以便将某些内容打印到控制台。