{
MessageBox.Show(\ + ex.Message); } } }
//数据接收线程
private void ReceiveData() {
bool keepalive = true; Socket s = clientSocket;
Byte[] buffer = new Byte[1024];
clientep = (IPEndPoint)s.RemoteEndPoint; while (keepalive) {
int bufLen = 0; //client socket recive try {
bufLen = s.Available;
s.Receive(buffer, 0, bufLen, SocketFlags.None); if (bufLen == 0) continue; }catch (Exception ex) {
MessageBox.Show(\ + ex.Message); return; }
//get client ip
clientep = (IPEndPoint)s.RemoteEndPoint;
//get stuff from buffer
string clientcommand = System.Text.Encoding.UTF8.GetString(buffer).Substring(0, bufLen); string[] stringSeparators = new string[] { \ }; string[] split = clientcommand.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); if (split[4] == \) {
//store username ipAddress pair so i can send info to corresponding client hshTable.Add(split[0], clientep.Address);
//write recived info in listview and xml file through safe thread operation Invoke(new MethodInvoker(delegate() {
add_listitem(split[0], split[1], split[2], split[3]);
35
write_xml(split[0], split[1], split[2], split[3].Trim()); }));
keepalive = false;
}else if (split[4]==\){
Invoke(new MethodInvoker(delegate() {
delete_xml(split[0], split[1], split[2], split[3]); for (int i = 0; i < listView1.Items.Count; i++) {
//处理Item
ListViewItem item = listView1.Items[i]; if (item.Text == split[0]) {
listView1.Items.Remove(item); } }
MessageBox.Show(split[0] + \已经出库\); })); } }
s.Shutdown(SocketShutdown.Receive); s.Close();
Thread.CurrentThread.Abort(); }
36
相关推荐: