سلام.
اینم مثال.
byte[] buffer = new byte[1024];
public Form1()
{
InitializeComponent();
Socket Mainlistener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
IPEndPoint server = new IPEndPoint(IPAddress.Any, 1800);
Mainlistener.Bind(server);
AsyncCallback callBackMethod = new AsyncCallback(AcceptCallback);
Mainlistener.Listen(4);
Mainlistener.BeginAccept(AcceptCallback,Mainlisten er);
}
private void AcceptCallback(IAsyncResult ar)
{
Socket temp = ((Socket)ar.AsyncState);
Socket worker = temp.EndAccept(ar);
AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReceiveMethod, worker);
}
private void ReceiveCallBack(IAsyncResult ar)
{
Socket worker = ((Socket)ar.AsyncState);
int bytesReceived = worker.EndReceive(ar);
string str = System.Text.UTF8Encoding.UTF8.GetString(buffer);
ShowInfo(str);
AsyncCallback ReceiveMethod = new AsyncCallback(ReceiveCallBack);
worker.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReceiveMethod, worker);
}
delegate void ShowInfoCallback(string text);
private void ShowInfo(string text)
{
if (this.txtMain.InvokeRequired)
{
ShowInfoCallback d = new ShowInfoCallback(ShowInfo);
this.Invoke(d, new object[] { text });
}
else
{
txtMain.Text+=text+"\n";
}
}