« Home « Kết quả tìm kiếm

Multithreaded Winsock


Tóm tắt Xem thử

- Ta có thể dùng Winsock Control trong một program để làm Winsock Server hay Winsock Client.
- Sở dỉ ta cần phải nói rõ LocalPort số mấy là vì Server Computer có thể Listen qua nhiều LocalPorts cùng một lúc để nhiều Clients có thể Connect đến cùng một Computer TCP address.
- System.Net.Sockets.
- cái System.dll và thêm câu:.
- Imports System.Net.Sockets ' for TcpClient and TcpServer.
- oListener = New TcpListener(PortNo) oListener.Start.
- Attempt to connect to destination (server) computer on given port number Client.Connect(DestinationComputer, TCPIPPortNo).
- Khi TcpListener AcceptSocket rồi thì hai bên TcpClient và TcpListener có thể gởi thông điệp qua lại cho đến khi một bên terminates (stop)..
- Từ Server ta cũng có thể gởi thông điệp qua Client cùng một cách như vậy..
- oThread.Start.
- Imports System.Threading ' for Thread.
- Class ClientWinsock chỉ gởi thông điệp và class ServerWinsock chỉ nhận thông điệp.
- Thông điệp được gởi đi lại dưới dạng một array of bytes.
- Buffer = System.Text.Encoding.UTF8.GetBytes(mMessage.ToCharArray.
- Client.GetStream().Write(Buffer, 0, Buffer.Length).
- the buffer) to UTF8 text string RecvMessage = System.Text.Encoding.UTF8.GetString(Buffer).
- Nếu dữ kiện chỉ là ASCII thì có thể dùng encoding ASCII cho hiệu lực hơn vì mỗi ASCII character chỉ cần một byte:.
- Buffer = System.Text.Encoding.ASCII.GetBytes(mMessage.ToCharArray.
- RecvMessage = System.Text.Encoding.ASCII.GetString(Buffer.
- Thật ra để gởi Unicode ta cũng có thể dùng encoding Unicode, tức là UTF16 .
- Imports System.Threading ' for threads.
- ClientThread.Start() End Sub.
- Client.Connect(DestinationComputer, TCPIPPortNo).
- Client.GetStream().Write(Buffer, 0, Buffer.Length) Client.Close.
- oListener.Start.
- ServerThread.Start.
- oThread = Thread.CurrentThread.
- bytes = oSocket.Receive(Buffer, Buffer.Length, 0) SyncLock oThread ' Lock oThread.
- the buffer) to UTF8 text string.
- RecvMessage = System.Text.Encoding.UTF8.GetString(Buffer.
- Thread.Sleep(100.
- oThread = New Thread(AddressOf ProcessRequest) oThread.Start.
- Khi khởi động, chương trình thử cho hiển thị hai TCPIPTestForms để bạn có thể thử ngay bằng cách click nút Send .
- Bạn có thể tải về mã nguồn của chương trình nầy kể cả hai classes ClientWinsock và ServerWinsock

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt