Các bước kết nối socket bằng TCPCLIENT - Phần 2

Wednesday, January 21, 2015
Sau khi chúng ta đã biết cách tạo sever ở bài cách kết nối socket bằng tcpclient thì hôm nay tiếp tục phần 2 là client

Các bước kết nối socket bằng TCPCLIENT - Phần 2

Cùng xem lại bài trước của phần này nhé.
Các bước kết nối Socket bằng TCPCLIENT từng bước phần 1
Như vậy các bạn đã biết thiết lập sever để lắng nghe client truy cập và gửi một dòng thông báo về client từ sever thông qua TCPCLIENT rồi nhé.

Phần 2 :VIẾT CODE CHO CLIENT


Đối với Client chúng ta cũng sẽ cần khai báo các thư viện cần thiết y hệt với Sever.
Nhưng nếu là Windows Form thì sẽ tạo 2 textbox 1 cái nhận dữ liệu và 1 cái gửi dữ liệu và 1 button send .
public Form1()

        {

            InitializeComponent();

            CheckForIllegalCrossThreadCalls = false;

        }
Hàm trên chúng ta sẽ tránh tình trạng tranh chấp giữa các thread với nhau , nếu các bạn nào không biết thì có thể tìm hiểu lại hàm thread nhé.
Bước 1 : Chúng ta vẫn sẽ lấy Tên máy và IP máy.
Nhưng đầu tiên chúng ta sẽ khai báo một số biến dùng chung bên ngoài.
StreamReader sr;

StreamWriter sw;

Socket client;

Thread tieutrinh;

NetworkStream ns;

Trong FormLoad() thì các bạn viết như sau , để các bạn có thể kết nối đến sever.
String tenmay=dns.gethostname();

String ipmay=dns.gethostbyname(tenmay).addresslist[0].tostring();

Khởi tạo một ipendpoint để thêm số hiệu cổng vào ip chuẩn.

Int port=100;

Ipendpoint ipe= new IpendPoint(Ipaddress.Parse(ipmay),port); 

chú ý port sẽ trùng với port của sever 100 chính là port mà chúng ta đã thiết lập cho sever.
Bước 2: Tạo socket cho client.
Sau khi đã có Ipendpoint chúng ta tiến hành tạo socket.
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.connect(ipe);
Bước 3: Khởi tạo các biến dùng chung đã khai báo.
ns = new NetworkStream(client);

sw = new StreamWriter(ns);

sr = new StreamReader(ns);

Bước 4 : Tạo tiểu trình để nhận dữ liệu từ sever.
Tietrinh= new thread(new threadstart(Nhandl);

Tieutrinh.start();

Bước 5 : Khởi tạo hàm nhận dữ liệu (nhandl).
Public void  nhandl()

{

    While(true){

        String kq=sr.readline();

        Nhandl.text=kq;

        // do chúng ta đã dùng hàm check ở trên nên không bị lỗi ở đây.

    }

}

Bước 6: Gửi dữ liệu về sever thông qua button send .
Khi nãy chúng ta đã có nói về tạo button send thì dây là code của button send.
Và khi nãy chúng ta đã nói có một textbox để làm gửi dữ liệu.
String inut= guild.text;

Switch(input)

{

    Case”DONKI”:

    Sw.writeline(input);

    Sw.Flust();

    Break;

}

No comments:

Post a Comment