多執行緒,沒有自己寫執行緒池,是使用系統執行緒池來管理的
(demo寫的比較亂 ^_^~)
server:
using system;
using system.collections.generic;
using system.text;
using system.net;
using system.net.sockets;
using system.threading;
namespace socketdemo
public socket socket
public bool isopen
public string address
public void polltarget(object obj)
string stringdata = encoding.utf8.getstring(data, 0, recv);
datetimeoffset now = datetimeoffset.now;
//獲取client的ip和埠
string address = client.remoteendpoint.tostring();
if (stringdata.indexof("exit") > -1)
else}}
}// 管理client
class clientmanager
}public static bool i***ist(string address)
public static void close(string address)
});}
// 傳送訊息到clientlist
public static void sendmassage(string msg, string address = null)
});}
}class program
}threadserver.abort();
}static void serverthreadstarttarget(object obj)
;threadpool.queueuserworkitem(new waitcallback(info.polltarget));}}
}}
client:
using system;
using system.text;
using system.net;
using system.net.sockets;
using system.threading;
read.abort();
}static void threadstarttarget(object obj)
string stringdata = encoding.utf8.getstring(data, 0, recv);
datetimeoffset now = datetimeoffset.now;
//獲取server的ip和埠
string ip = client.remoteendpoint.tostring();
console.writeline(stringdata);
console.writeline(ip + " " + now.tostring("g"));}}
}}
C Socket 非同步 聊天室
socket 非同步通訊,執行緒池是由系統來維護執行緒的 注意 非同步呼叫時,不能使用同步呼叫的方法,會執行緒阻塞 server using system using system.collections.generic using system.text using system.net usin...
C Socket聊天室(小白整理)
最近算是0基礎學了socket的程式設計,發現很多不友好。其實是自己不知道,啊哈哈。最開始建立c 的指令碼時要建立窗體,而不是控制台程式。之後建議根據介面,自己來寫。還有別忘了server和client建立兩個程式哦。分別為服務端,客戶端。正式的socket服務端 public partial cl...
用CSocket實現聊天室程式
基本上是照著書上做的 花了10天左右反覆閱讀 基本搞懂後才除錯 雖然書上有很詳細的 但是有些東西還是不全 比如標頭檔案 還有vc6.0和2005的小差別 比如unicode編碼問題 send函式的第2個引數要 2 還有書上也有錯的地方 當你理解了書上 時就能找出 敲完執行時還遇到了亂碼問題 在csd...