要讓C# Socket與Java通信,可以使用Socket編程。可以在C#中使用Socket類來創建一個Socket對象,然后使用它來連接到Java應用程序的Socket。在Java中,也可以使用Socket類來創建一個Socket對象,然后使用它來連接到C#應用程序的Socket。
以下是一個示例代碼,演示如何在C#和Java之間建立Socket通信:
在C#中的代碼:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
// 創建一個Socket對象
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 連接到Java應用程序的Socket
socket.Connect(IPAddress.Parse("Java應用程序的IP地址"), Java應用程序的端口號);
// 發送數據到Java應用程序
byte[] data = Encoding.ASCII.GetBytes("Hello from C#");
socket.Send(data);
// 接收來自Java應用程序的數據
byte[] buffer = new byte[1024];
int bytesRead = socket.Receive(buffer);
string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received from Java: " + response);
// 關閉Socket連接
socket.Close();
}
}
在Java中的代碼:
import java.io.*;
import java.net.*;
public class Main {
public static void main(String[] args) {
try {
// 創建一個Socket對象
Socket socket = new Socket("C#應用程序的IP地址", C#應用程序的端口號);
// 接收來自C#應用程序的數據
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data = in.readLine();
System.out.println("Received from C#: " + data);
// 發送數據到C#應用程序
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello from Java");
// 關閉Socket連接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代碼示例中,C#程序通過Socket發送數據到Java程序,Java程序接收并發送數據到C#程序。確保C#和Java程序在相同的網絡中,IP地址和端口號正確匹配。