我完全新的插座用C#編程,我試圖得到兩個運行.EXE文件交談海誓山盟:C#插座幫助
static void Main(string[] args) {
bool sender = !false;
if (args.Length > 0) sender = !true;
if (sender) {
try {
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8221);
sock.Connect(ipe);
while (true) {
string toSend = Console.ReadLine();
sock.Send(Encoding.UTF32.GetBytes(toSend));
}
}
catch (SocketException e) {
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
else {
try {
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 8221);
sock.Bind(ipe);
sock.Listen(4);
while (true) {
if (!sock.Connected) continue;
byte[] buffer = new byte[1024];
if (sock.Receive(buffer) > 0) Console.WriteLine(Encoding.UTF32.GetString(buffer));
}
}
catch (SocketException e) {
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
}
此刻雖然,這兩個程序運行沒有錯誤,但他們似乎並沒有連接(如果(!sock.Connected)總是正確的)。
請幫忙,謝謝。
什麼是!true和!false。完全沒有意義。 – 2010-09-07 09:54:04
啊,是的,呃...我在視覺工作室測試它,但我想用調試器測試程序的另一半,所以不是大驚小怪,而是翻轉了真實/錯誤。 – Xenoprimate 2010-09-07 09:57:36
當他們無法連接(在'sock.Connect(ipe)'聲明)時,你會得到一個異常嗎? 「連接」不是真正的連接狀態,而是一個標誌,說上次發送或接收是否成功 – Patrick 2010-09-07 10:02:30