private string OnReceivedData(IAsyncResult ar)
{
if (!ar.IsCompleted)
{
return null; // 这个也是新改的,原来没有返回null;
}
Socket s = (Socket)ar.AsyncState;
try
{
int size = s.EndReceive(ar);
//string ss = "";
string sss = "";
if (size > 0)
{
for (int i = 0; i < size; i++)
{
sss += bufferReceive[i].ToString("x2");
}
return sss; // 这句是新改的,为了将收到的东西返回出去
//counterRosTimes++;
//ShowMsg(sss);
}
s.BeginReceive(bufferReceive, 0, 1024, SocketFlags.None, new AsyncCallback(OnReceivedData), s);
红色地方,提示错误, 返回值类型不匹配
上面是socket异步通信时的,接受函数, 开始时,上述代码都放在一个文件中
也都能正常工作的
现在我想把通信部分抽离出来,,单独封装到一个类文件中
于是就出现了上面问题
不知道如何修改呢?
谢谢
}
catch (SocketException E)
{
}
{
if (!ar.IsCompleted)
{
return null; // 这个也是新改的,原来没有返回null;
}
Socket s = (Socket)ar.AsyncState;
try
{
int size = s.EndReceive(ar);
//string ss = "";
string sss = "";
if (size > 0)
{
for (int i = 0; i < size; i++)
{
sss += bufferReceive[i].ToString("x2");
}
return sss; // 这句是新改的,为了将收到的东西返回出去
//counterRosTimes++;
//ShowMsg(sss);
}
s.BeginReceive(bufferReceive, 0, 1024, SocketFlags.None, new AsyncCallback(OnReceivedData), s);
红色地方,提示错误, 返回值类型不匹配
上面是socket异步通信时的,接受函数, 开始时,上述代码都放在一个文件中
也都能正常工作的
现在我想把通信部分抽离出来,,单独封装到一个类文件中
于是就出现了上面问题
不知道如何修改呢?
谢谢
}
catch (SocketException E)
{
}
IAsyncResult ar
)
需要无返回类型的方法作为回调
//ShowMsg(sss);
这个句就是要将结果,显示到界面上去的
比如txtBox内 ,,这个新的类文件里,没找到操作办法呀
protected virtual void OnDataReceived(string msg) {
if(DataReceived != null) {
DataReceived(this, new DataReceivedArgs(msg));
}
}
class DataReceivedArgs : EventArgs {
public string Msg{get; protected set;} public DataReceivedArgs(string msg) {
Msg = msg;
}
}外面挂载这个事件