chào các bạn mình là dân điện tử mới làm quen với socket thôi code thì cũng lượm lặt vài nơi vì mình ko chuyên về mảng lập trình này lắm. Sau khi lượm lặt thì mình có code chạy rồi nhưng không thể nào ngắt kết nối mỗi lần tắt là phải log off mới chạy lại được bác nào có cao kiến giúp ko
code của em nó đây :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;


namespace Gprs_Server
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

//Bien toan cuc
public static Socket client;
public static byte[] data = new byte[1024];

private void Start_button_Click(object sender, EventArgs e)
{
IPAddress address = IPAddress.Parse("192.168.1.7");
Hienthi("Đang chờ kết nối ... ");
Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(address, 1990);
newsock.Bind(iep);
newsock.Listen(5);
newsock.BeginAccept(new AsyncCallback(Chophep_ketnoi), newsock);
}

void Chophep_ketnoi(IAsyncResult iar)
{
Socket oldserver = (Socket)iar.AsyncState;
client = oldserver.EndAccept(iar);
Hienthi("Kết nối từ:" + client.RemoteEndPoint.ToString());
Thread receiver = new Thread(new ThreadStart(Nhan_dulieu));
receiver.Start();
}

void Nhan_dulieu()
{

string stringData;
while(true)
{
int recv = client.Receive(data);
stringData = Encoding.ASCII.GetString(data,0,recv);
Hienthi(stringData);
}
}

private void Exit_button_Click(object sender, EventArgs e)
{

try
{
client.Close();
}
catch { }


}

private delegate void DHienthi(string s);
private void Hienthi(string s)
{
if (results.InvokeRequired)
{
DHienthi sd = new DHienthi(Hienthi);
results.Invoke(sd, new object[] { s });
}
else
{
results.Items.Add(s);
}
}

}
}
đây là file nếu bác nào giúp sữa lại giúp mình:
http://www.mediafire.com/?csder3jnyk9fbrg
Cám ơn các bác trước vậy