如何将 SimplSockets 与委托一起用于“hello world”项目?
Posted
技术标签:
【中文标题】如何将 SimplSockets 与委托一起用于“hello world”项目?【英文标题】:How do I use SimplSockets with a delegate for a "hello world" project? 【发布时间】:2014-09-25 02:04:59 【问题描述】:我正在研究 SimplSockets 库以构建使用套接字的应用程序。但是,在检查了other questions on Stack Overflow、the author’s blog、the source 和几次 Internet 搜索后,我找不到使用 SimplSockets 创建“hello world”项目的直接方法。
如何创建使用 SimplSockets 的“hello world”应用程序?
为了防止“过于宽泛”的关闭,我要做的就是发送和接收一些数据。一个字符串,随便。我打开这个问题的原因是因为我不确定如何调用构造函数,因为它使用func<T>
,其中T
是一个套接字。
【问题讨论】:
正如所言,这个问题对于 SO 来说是题外话。软件/教程的建议......等 @paqogomez:你可能已经对“样本”这个词产生了这种印象;但是,如果您将“示例”替换为询问如何,那么这个问题同样有效。做出这样的调整后,它可能仍然过于宽泛,但肯定不是对场外资源的请求。 @paqogomez -- 对我来说,您的评论绝对有道理。 OP 不是“要求软件或教程”。 makerofthings7 - 好问题,谢谢。 @JoeBlow,检查问题的编辑历史。当 paqogomez 写下他/她的答案时,问题听起来已经大不相同了。 谢谢@ebb,是的,这个问题与第一个版本非常不同,因此使用了“Asphed”短语。我确信作为一个 9k 用户,制造商可以把它带到身边。我撤回了我的近距离投票。很高兴能够向 meta 寻求帮助,这似乎为他赢得了 85 分。 【参考方案1】:我在使用 SimplSockets 时遇到的问题是我没有正确理解如何使用构造函数中所需的委托。
下面是一个示例客户端/服务器,它会向您回显输入的数据。我不知道我应该做什么来代替Thread.Sleep()
,所以除非有人有更好的建议,否则我会把它留在那里。
private static void ConnectUsingSimpleSockets()
int maxClients = 50;
int maxPeers = 10;
var socketCreator = () => new System.Net.Sockets.Socket(SocketType.Stream, ProtocolType.Tcp);
using (var client = new SimplSockets.SimplSocket(socketCreator, 5000, 10, true))
client.MessageReceived += client_MessageReceived;
client.Error += client_Error;
var ss = new System.Net.IPEndPoint(BitConverter.ToInt32(IPAddress.Parse("127.0.0.1").GetAddressBytes(), 0), 4747);
if (client.Connect(ss))
Console.WriteLine("type something..");
while (true)
string resul = Console.ReadLine();
byte[] data = client.SendReceive(UTF8Encoding.UTF8.GetBytes("Client Send: " + resul + DateTime.Now));
if (data == UTF8Encoding.UTF8.GetBytes("END"))
break;
Console.WriteLine(UTF8Encoding.UTF8.GetString(data));
client.Close();
client.Listen(ss);
while (true)
Console.WriteLine("sleeping");
Thread.Sleep(7000);
client.Close();
【讨论】:
原谅我的无知...client.MessageReceived += client_MessageReceived
添加了 SimplSocket
构造函数不会接受的委托?
我觉得应该是BitConverter.ToInt64
以上是关于如何将 SimplSockets 与委托一起用于“hello world”项目?的主要内容,如果未能解决你的问题,请参考以下文章
Swinject:如何将委托模式与接口隔离(类与接口)一起使用?
如何将代表与 NSKeyedUnarchiver 一起使用?