我的TCP客户端应该:
我得到端口和字符串的结果的问题,但我没有得到关于主机的任何内容。
这是我到目前为止所得到的:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Net.Sockets;
namespace TCP_Client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string port = port1.Text;
int myParsedInt = Int32.Parse(port);
System.Net.IPAddress[] adresslist = Dns.GetHostAddresses(host1.Text);
Socket connectSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
connectSocket.Connect(adresslist[0], myParsedInt);
System.IO.StreamReader connectionRead = new System.IO.StreamReader(new NetworkStream(connectSocket));
connectSocket.Send(System.Text.Encoding.UTF8.GetBytes(sendText.Text + "\r\n"));
while (connectionRead.Peek() >= 0)
{
this.textOutput.AppendText(connectionRead.ReadLine() + "\r\n");
}
connectSocket.Close();
}
private void textOutput_TextChanged(object sender, EventArgs e)
{
}
private void host1_TextChanged(object sender, EventArgs e)
{
}
private void port1_TextChanged(object sender, EventArgs e)
{
}
private void sendText_TextChanged(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:0)
您是否尝试过TcpClient课程?
除非你需要低级套接字IO,否则你可能会觉得这个类更容易处理(当然这对你在这里的用例来说更容易)。
在TcpClient上,构造函数(或Connect)可以接受主机名,并且有一些方法可以访问NetworkStreams(入站和出站)
该链接中的MSDN示例或多或少包含您正在尝试执行的操作。
修改强> 你能更清楚地知道到底出了什么问题吗? DNS解析是否失败,或者您获得了有效的IP?
您的服务器是否看到了流量?您是否在发送文本后尝试调用Shutdown(SocketShutdown.Send)?