私はvariosイベントを表示するasp.net mvc appを持っています。すべてのイベントはデータベースに格納されます。しかし今、データベースとリモートプログラムからデータをロードする必要があります。このプログラムは外部サービスを持っています(これは特定のTCP
ポートを受信し、クエリを受信してxmlを返す単純なプログラムです)。asp.net mvcアプリケーションのTCPClient
そして、私は外部プログラムに接続するテストのための簡単なページを書いています。コードは、MSDNから得た:私は、このソリューションがもパフォーマンスを減らすことになると思い
public ActionResult GetData()
{
string query = "some query";
var response = Connect("192.168.0.1", query);
var model = ParseResponse(response);
return View(model);
}
:
static string Connect(String server, String message)
{
try
{
// Create a TcpClient.
Int32 port = 9197;
TcpClient client = new TcpClient(server, port);
// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
// Get a client stream for reading and writing.
// Stream stream = client.GetStream();
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
// Receive the TcpServer.response.
// Buffer to store the response bytes.
data = new Byte[256];
// String to store the response ASCII representation.
String responseData = String.Empty;
// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
stream.Close();
client.Close();
return responseData;
}
catch (ArgumentNullException e)
{
//
}
catch (SocketException e)
{
//
}
}
これは私の行動です。
ASP.NET MVC 3アプリでTCPClientを使用するのに最も良い方法は何ですか?
私のコードについてどう思いますか? ご提案は大歓迎です。