我是靠谱客的博主 美丽鞋垫,最近开发中收集的这篇文章主要介绍socket的BeginConnect(EndPoint remoteEP,AsyncCallback callback,objcet state);个人理解1.socket.BeginConnect();,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.socket.BeginConnect();

  其中的三个参数值EndPoint remoteEP,这个是用来指定连接的socket服务器的的地址

socket参数表
EndPoint remoteEP这个的参数用来指定socket所连接的服务器的地址,一般包含的信息有,IP地址+端口号Point
AsyncCallback callback这个参数指定一个异步的委托来请求socket服务器,并执行.
objcet state用来指定异步请求委托的参数

 

 

 

 

 

 

 

 

 

 

 

public static void AsynConnect(string json, string ip, int port)
{
try
{
timeoutObject = new ManualResetEvent(false);
sendstr = json;
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), port);
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.BeginConnect(ipe, new AsyncCallback(CallBackMethod), client);
if (!timeoutObject.WaitOne(5000, false))
{
client.Close();
}
}
catch (Exception ex)
{
}
}
public static void CallBackMethod(IAsyncResult asyncresult)
{
try
{
client = asyncresult.AsyncState as Socket;
if (client != null)
{
client.EndConnect(asyncresult);
AsynSend(client, sendstr);
AsynRecive(client);
}
}
catch (Exception e)
{
}
finally
{
timeoutObject.Set();
}
}
public static void AsynSend(Socket socket, string message)
{
if (socket == null || message == string.Empty) return;
//编码

byte[] data = Encoding.UTF8.GetBytes(message);
try
{
socket.BeginSend(data, 0, data.Length, SocketFlags.None, asyncResult =>
{
int length = socket.EndSend(asyncResult);
// Console.WriteLine(string.Format("客户端发送消息:{0}", message));
}, null);
}
catch (Exception ex)
{
}
}
static string receicestr = "";
public static void AsynRecive(Socket socket)
{
byte[] data = new byte[1024];
try
{
socket.BeginReceive(data, 0, data.Length, SocketFlags.None,
asyncResult =>
{
int length = socket.EndReceive(asyncResult);
receicestr += Encoding.UTF8.GetString(data);
AsynRecive(socket);
}, null);
}
catch (Exception ex)
{
}
}

按照我的理解是,先创建一个socket连接对象,开启BeginConnect()连接的同时,开启一个新的线程用来走

传入的异步委托,在委托中调用EndConnect(),方法来来让阻塞的线程往下走并同时进行了发送消息和接受

消息两个操作,

 

 

 

第一篇随笔可能语言逻辑和信息不太完整和严谨,如果有错误的地方和不严谨的地方请在下方回复我,我将及时改正

 

转载于:https://www.cnblogs.com/yujunxiaobai/p/10529151.html

最后

以上就是美丽鞋垫为你收集整理的socket的BeginConnect(EndPoint remoteEP,AsyncCallback callback,objcet state);个人理解1.socket.BeginConnect();的全部内容,希望文章能够帮你解决socket的BeginConnect(EndPoint remoteEP,AsyncCallback callback,objcet state);个人理解1.socket.BeginConnect();所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部