服务器端
TCPServer
1、使用的通讯通道:socket
2、用到的基本功能:
Bind,
Listen,
BeginAccept
EndAccept
BeginReceive
EndReceive
3、函数参数说明
SocketType.Stream, ProtocolType.Tcp);
新建socket所使用的参数均为系统预定义的量,直接选取使用。
localEndPoint 表示一个定义完整的终端,包括IP和端口信息。
//new IPEndPoint(IPAddress,port)
//IPAdress.Parse("192.168.1.3")
监听
new AsyncCallback(AcceptCallback),
listener);
AsyncCallback(AcceptCallback),一旦连接上后的回调函数为AcceptCallback。当系统调用这个函数时,自动赋予的输入参数为IAsyncResoult类型变量ar。
listener,连接行为的容器。
完成连接,返回此时的socket通道。
new AsyncCallback(ReadCallback), state);
接收的字节,0,字节长度,0,接收时调用的回调函数,接收行为的容器。
========
容器的结构类型为:
}
容器至少为一个socket类型。
===============
int bytesRead = handler.EndReceive(ar);
完成一次连接。数据存储在state.buffer里,bytesRead为读取的长度。
new AsyncCallback(SendCallback), handler);
发送数据byteData,回调函数SendCallback。容器handler
发送完毕,bytesSent发送字节数。
4 程序结构
主程序:
Console.Read();
连接行为回调函数AcceptCallback:
}
读取行为的回调函数ReadCallback:
}
}
}
发送消息给客户端:
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
在各种行为的回调函数中,所对应的socket都从输入参数的AsyncState属性获得。使用(Socket)或者(StateObject)进行强制转换。BeginReceive函数使用的容器为state,因为它需要存放传送的数据。
而其余接收或发送函数的容器为socket也可。
完整代码
------------------------
主程序:
;
}连接部分Callback:
connectDone.Set();
}
数据接收:
receiveDone.Set();
}
}
发送数据:
sendDone.Set();
}
服务器端
TCPServer
1、使用的通讯通道:socket
2、用到的基本功能:
Bind,
Listen,
BeginAccept
EndAccept
BeginReceive
EndReceive
3、函数参数说明
SocketType.Stream, ProtocolType.Tcp);
新建socket所使用的参数均为系统预定义的量,直接选取使用。
localEndPoint 表示一个定义完整的终端,包括IP和端口信息。
//new IPEndPoint(IPAddress,port)
//IPAdress.Parse("192.168.1.3")
监听
new AsyncCallback(AcceptCallback),
listener);
AsyncCallback(AcceptCallback),一旦连接上后的回调函数为AcceptCallback。当系统调用这个函数时,自动赋予的输入参数为IAsyncResoult类型变量ar。
listener,连接行为的容器。
完成连接,返回此时的socket通道。
new AsyncCallback(ReadCallback), state);
接收的字节,0,字节长度,0,接收时调用的回调函数,接收行为的容器。
========
容器的结构类型为:
}
容器至少为一个socket类型。
===============
int bytesRead = handler.EndReceive(ar);
完成一次连接。数据存储在state.buffer里,bytesRead为读取的长度。
new AsyncCallback(SendCallback), handler);
发送数据byteData,回调函数SendCallback。容器handler
发送完毕,bytesSent发送字节数。
4 程序结构
主程序:
Console.Read();
连接行为回调函数AcceptCallback:
}
读取行为的回调函数ReadCallback:
}
}
}
发送消息给客户端:
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
在各种行为的回调函数中,所对应的socket都从输入参数的AsyncState属性获得。使用(Socket)或者(StateObject)进行强制转换。BeginReceive函数使用的容器为state,因为它需要存放传送的数据。
而其余接收或发送函数的容器为socket也可。
完整代码
主程序:
}
连接部分Callback:
}
数据接收:
}
}
发送数据:
}