ASP.NET, liệu có khả thi không?

polo
07-05-08, 11:58
Em có quả Application chạy trên Window, tắt bật cái chương trình đó bằng cách gửi 1 gói UDP vào cho nó. Cái này chạy tốt rồi.

Em viết một cái web application dùng C# (ASP.NET) nhưng không tài nào mở socket và gửi được UDP packet? Em dốt về web iếc, mong bác Bi bác Đông và các bác khác chỉ dạy.


PS: Code của em đây, test trên client ứng dụng thì chạy, vào ASP.NET thì không chạy.

IPEndPoint _epDCS = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);
UdpClient _udpSocket = new UdpClient(8888);
......
_buf = Encoding.Default.GetBytes(xml.OuterXml);
_udpSocket.Send(_buf, _buf.Length, _epDCS);
wasabi
07-05-08, 12:02
Em không biết mấy vụ này nhưng mà em đoán là cái đoạn code asp.net của bác sẽ terminate ngay khi web server trả hết nội dung về cho client?
polo
07-05-08, 13:12
Vâng, đúng rồi bác ạ. Thế có nghĩa là nó mở socket rồi đóng luôn lại lập tức hả bác?
wasabi
07-05-08, 13:27
À cóc phải, cái của bác có phải là listen đâu nhở, trên lý thuyết là phải được.
polo
07-05-08, 13:49
Em mô tả rõ hơn nữa nhé, đại loại là em bấm phát vào một cái nút trên trình duyệt thì chương trình ASP.NET sẽ mở socket và bắn 1 phát UDP đi đến một địa chỉ nào đó.

Lỗi trên IE: Bấm nút phát nó tắt phụt IE luôn.
Lỗi trên Firefox: Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Cannot send packets to an arbitrary host while connected.

Cụ thể code đây ạ:

protected void _selectButtonClick(object sender, ImageClickEventArgs e)
{
IPEndPoint _epDCS = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);
UdpClient _udpSocket = new UdpClient("127.0.0.1",8888);
byte[] _buf = new byte[2048];


XmlDocument xml = new XmlDocument();
..........
_buf = Encoding.Default.GetBytes(xml.OuterXml);
_udpSocket.Send(_buf, _buf.Length, _epDCS);

}

Bác nào cho em xin ý kiến chỉ đạo phát, em đội ơn.
wasabi
07-05-08, 13:56
Hay bác chơi xừ nó PHP đi, cho lành. Chạy trên host unix thì chỉ cần như này là ăn:


<?php
exec("sendip 192.168.1.99 -ud 9999 -f myfile.xml");
?>
darkan
07-05-08, 23:19
Bác em catch lại cái exception rồi show cái stacktrace xem nó lỗi ở dòng nào.
Bác em để đoạn này không trong cái try catch nào thì hơi nguy hiểm.
polo
08-05-08, 22:46
Cám ơn sự nhiệt tình của bác Bi bác Đác, em đành chuyển sang hướng khác vậy.
Nắng sớm
08-05-08, 22:58
Em ké phát.

Bi có cách nào giấu cái file http://tnxm.net/clientscript/livethreadNotification.mp3 này đi cái được không cưng? Mỗi lần anh mở một cửa sổ hay lướt đi đâu cái, con IDM nó lại down về máy anh rất tự tiện. Anh tắt chế độ auto thì không ổn, lúc nào down gì lại phải lọ mọ bật lại.

Thanks Bi nghen!