Ðăng Nhập

View Full Version : [TCPIP Stack]Làm thế nào để phát hiện disconnect khi rút cáp mạng ra?


bebungbu
07-07-2010, 04:23 PM
Chào mọi người,

Tình hình là cái board của mình là TCP Client.
Ứng dụng trên Windows là TCP server.
Trường hợp khi board đã connect được với server thì rút cáp mạng ra,
khi đó thì board không biết được mất kết nối.
Làm thế nào để phát hiện disconnect trong trường hợp này?
Ai biết thì chỉ mình với nhe.
Cám ơn.

bien_van_khat
07-07-2010, 04:40 PM
TCPIsConnected ?????

bebungbu
07-07-2010, 06:00 PM
TCPIsConnected ?????
Mình đã thử rồi, nếu tắt ứng dụng server thì TCPIsConnected trả về false,
nhưng đang kết nối mà rút dây thì TCPIsConnected vẫn là true.
Mình test nhiều lần rồi, mong xác nhận trường hợp này dùm.
Cám ơn.

bien_van_khat
08-07-2010, 01:26 AM
Mình đã thử rồi, nếu tắt ứng dụng server thì TCPIsConnected trả về false,
nhưng đang kết nối mà rút dây thì TCPIsConnected vẫn là true.
Mình test nhiều lần rồi, mong xác nhận trường hợp này dùm.
Cám ơn.

Bạn thử MACIsLinked xem.

bebungbu
08-07-2010, 12:03 PM
Bạn thử MACIsLinked xem.
Quá hay, quả nhiên là rút dây mạng ra thì hàm MACIsLinked phát hiện ra được.
Nhưng lại có vấn đề tiếp theo:
Sau khi phát hiện rút dây mạng ra, ta thực hiện TCPDisconnect(MySocket) hoặc TCPClose(MySocket) để đóng kết nối.
Về phái ứng dụng server thì khi phát hiện đứt kết nối đã đóng kết nối hiện tại,
và tiếp tục lắng nghe kết nối mới.
Phía board client sau khi thực hiện đóng kết nối,
thì gọi TCPOpen nhưng lúc này không kết nối được tới server nữa.
Mình không biết lý do tại sao bị như thế, mong mọi người chỉ dùm nhe.
Cám ơn.

manhdktd
16-07-2010, 12:42 AM
các bác đã làm về ethernet rồi thì xin chỉ bảo hướng làm cho em với.em đang tìm hiểu mà chưa biết làm kiểu gì cả.thanks các bác