在 C# dot net 中创建支持多客户端连接的服务器
Creating a server which supports multi client to connect in C# dot net
我正在尝试用 C# dot net 编写一个聊天应用程序,它有两个方面,一个服务器端和一个客户端。
服务器端是唯一的,但客户端可能不止一个,数据传输应该加密,确实我会在双方实现加密数据通信。
总的来说我想请问我需要做什么?
我需要的是,考虑服务器端创建一个套接字和两个
客户端将要发送数据(例如:client0 给出了地址
client1) 那么服务器应该如何将数据路由到
目的地(在本例中为 client1)?
数据加密应该如何实现,哪些数据
应该使用密码加密以及如何使用?
我认为数据加密的想法在这段时间可能是更复杂的任务,所以我会在一开始不实施数据加密的情况下编写项目吗?
谢谢你的好主意。
你可以用 TcpClient (client) and with TcpListener(服务器)
而通信和数据传输可以与线程/异步任务一起使用以获得异步和多线程功能。
读这个:
http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm
*编辑:
如果不向您提供至少一小部分项目和代码就很难解释,因此我在上面发布了 link,我认为它确实可以帮助您开始。
至于从一个客户端到另一个客户端的路由,
你可以通过多种方式做到这一点。
一种方法是给每个客户一个唯一的 ID 或者使用一个唯一的用户名(与大多数聊天一样)并发送那个唯一的用户名。您可以在每次发送带有分隔符的数据时创建一个字符串,并在收到时对其进行解析。
例如:
这将在客户端:
string FullMessage = "$#1name" + "yourName" + "$#2name" + "$#1message" + "YourMessage" + "$#2message");
这将在服务器端:
string MessageRecieved = GetSubstringByString("$#1message", "$#2message", FullMessage);
string Name = GetSubstringByString("$#1name", "$#2name", FullMessage);
public string GetSubstringByString(string startString, string endString, string fullString)
{
return fullString.Substring((fullString.IndexOf(startString) + startString.Length), (fullString.IndexOf(endString) - fullString.IndexOf(startString) - startString.Length));
}
我正在尝试用 C# dot net 编写一个聊天应用程序,它有两个方面,一个服务器端和一个客户端。 服务器端是唯一的,但客户端可能不止一个,数据传输应该加密,确实我会在双方实现加密数据通信。
总的来说我想请问我需要做什么?
我需要的是,考虑服务器端创建一个套接字和两个 客户端将要发送数据(例如:client0 给出了地址 client1) 那么服务器应该如何将数据路由到 目的地(在本例中为 client1)?
数据加密应该如何实现,哪些数据 应该使用密码加密以及如何使用?
我认为数据加密的想法在这段时间可能是更复杂的任务,所以我会在一开始不实施数据加密的情况下编写项目吗?
谢谢你的好主意。
你可以用 TcpClient (client) and with TcpListener(服务器) 而通信和数据传输可以与线程/异步任务一起使用以获得异步和多线程功能。
读这个: http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm
*编辑:
如果不向您提供至少一小部分项目和代码就很难解释,因此我在上面发布了 link,我认为它确实可以帮助您开始。
至于从一个客户端到另一个客户端的路由, 你可以通过多种方式做到这一点。 一种方法是给每个客户一个唯一的 ID 或者使用一个唯一的用户名(与大多数聊天一样)并发送那个唯一的用户名。您可以在每次发送带有分隔符的数据时创建一个字符串,并在收到时对其进行解析。
例如:
这将在客户端:
string FullMessage = "$#1name" + "yourName" + "$#2name" + "$#1message" + "YourMessage" + "$#2message");
这将在服务器端:
string MessageRecieved = GetSubstringByString("$#1message", "$#2message", FullMessage);
string Name = GetSubstringByString("$#1name", "$#2name", FullMessage);
public string GetSubstringByString(string startString, string endString, string fullString)
{
return fullString.Substring((fullString.IndexOf(startString) + startString.Length), (fullString.IndexOf(endString) - fullString.IndexOf(startString) - startString.Length));
}