[英]Unable to connect 2 computers in c#
我正在嘗試在兩台計算機之間發送消息。 我已經能夠建立連接,但是由於某些奇怪的原因,我無法獲取流。
服務器代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace chat_server
{
class Program
{
static void Main(string[] args)
{
TcpListener server = new TcpListener(IPAddress.Any, 9999);
server.Start();
Console.WriteLine("Waiting for client connections");
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Client request accepted");
NetworkStream stream = client.GetStream();
StreamReader reader = new StreamReader(stream);
StreamWriter writer = new StreamWriter(stream);
Console.WriteLine("The message is " + reader.ReadToEnd());
}
}
}
客戶代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace chat_client
{
class Program
{
static void Main(string[] args)
{
TcpClient client = new TcpClient("localhost", 9999);
NetworkStream stream = client.GetStream();
StreamReader reader = new StreamReader(stream);
StreamWriter writer = new StreamWriter(stream);
writer.Write("Hello world");
Console.WriteLine("Message Sent");
Console.ReadKey();
}
}
}
我的服務器代碼通過打印接受的客戶端請求來確認客戶端連接。 但是由於某種原因,我無法從流中獲取數據。 快速幫助將不勝感激。
謝謝
您需要刷新流才能實際發送數據。
嘗試:
writer.Write("Hello world");
writer.Flush();
查看MSDN文檔以獲取更多信息:
同步套接字服務器: http : //msdn.microsoft.com/en-us/library/6y0e13d3.aspx異步套接字服務器: http : //msdn.microsoft.com/en-us/library/5w7b7x5f.aspx
這是一個更詳細地說明套接字的來龍去脈的網站: http : //nitoprograms.blogspot.co.uk/2009/04/tcpip-net-sockets-faq.html
在服務器端,
添加static TcpListener server;
在頂部
然后`server.Start();
Socket soc = listener.AcceptSocket();
Console.WriteLine("Connection successful");
Stream s = new NetworkStream(soc);
StreamReader reader = new StreamReader(s);
StreamWriter writer= new StreamWriter(s);
sw.AutoFlush = true;
sw.WriteLine("hello world");`
在客戶端
TcpClient client = new TcpClient("localhost", 9999);
Stream s = client.GetStream();
Console.WriteLine("Connection successfully received");
StreamWriter writer = new StreamWriter(s);
StreamReader reader = new StreamReader(s);
sw.AutoFlush = true;
string dis=reader.readLine();
Console.WriteLine(dis);
希望它現在可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.