脚本宝典收集整理的这篇文章主要介绍了.net的socket异步通讯示例分享,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1、首先添加两个windows窗体项目,一个作为服务端server,一个作为客户端Client
2、然后添加服务端代码,添加命名空间,界面上添加TextBox控件
using
System.Net;
using System.Net.Sockets;
3、ForMLoad方法添加代码
PRivate void Form1_Load(object sender, Event
args e)
&nbs
p; {
I
PEndPoint epServer = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP地址和端口号
Socket socket = new Socket(AddressF
amily.
internetwork, SocketType.Stre
am, ProtocolType.Tcp);//定义socket
socket.Bind(epServer);//绑定
socket.Listen(10);//监听
socket.Be
ginAccept(new AsyncCallback(
recving), socket);//异步接收,回调方法为RecVing
}
4、添加回调方法代码
private void RecVing(IAsyncResult rec_socket)
{
string cmdstr = "";
Socket sc = (Socket)rec_socket.Async
state;
Socket socket = sc.EndAccept(rec_socket);
byte[] bytes = new byte[1024];
int i = socket.Rec
eive(bytes);
cmdstr = Encoding.UTF8.GetString(bytes, 0, i);
showstrs(cmdstr);
sc.BeginAccept(new AsyncCallback(RecVing), sc);
}
5、添加showstrs方法,
定义委托private delegate void shixudong_invoke(string invokefun);
private void showstrs(string recv_strs)
{
if (recv_strs.Length != 0)
{
if (this.InvokeRequi
red)
{
shixudong_invoke invoke = new shixudong_invoke(showstrs);
this.Invoke(invoke, (object)recv_strs);
}
else
{
textBox1.Text = recv_strs;
}
}
6、到此为止,服务端已经添加完毕
7,客户端代码,首先跟服务端一样,添加命名空间,在界面上添加button事件
private void butto
n1_Click(object sender, EventArgs e)
{
IPEndPoint IPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 7878);//IP,端口号
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.BeginConnect(IPEndPoint, new AsyncCallback(Sending), socket);//回调方法Sending
}
8、添加回调方法,代码如下
private void Sending(IAsyncResult rec_socket)
{
Socket socket = (Socket)rec_socket.AsyncState;
try
{
if (socket.Connected)
{
byte[] msgBuff = Encoding.UTF8.GetBytes(textBox1.Text);
socket.Send(msgBuff);
//socket.Accept();
}
else
{
Console.Wr
ITeLine("Error!", "Error!");
}
}
catch
{
Console.WriteLine("Error!", "Error!");
}
9、到此为止,客户端代码已经完成,调试的时候先启动服务端,然后启动客户端
10、运行截图如下,点击按钮前,在文本框中输入shixudong
脚本宝典总结
以上是脚本宝典为你收集整理的.net的socket异步通讯示例分享全部内容,希望文章能够帮你解决.net的socket异步通讯示例分享所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。