我试图使用套接字将消息发送到电脑进行初始化,但我不断收到此错误:的StreamWriter为空,即使它在C#
System.NullReferenceException: 'Object reference not set to an instance of an object.'
sw was null.
这是我的代码:
public partial class ServerGUI : Form
{
Socket soc;
StreamReader sr;
StreamWriter sw;
Stream s;
public ServerGUI()
{
InitializeComponent();
try
{
if (Server.port == 0)
{ }
else
{
textBox2.Text = Server.port.ToString();
}
}
catch (Exception) { }
}
private void button1_Click(object sender, EventArgs e)
{
connect();
}
void connect()
{
Server.port = int.Parse(textBox2.Text);
TcpListener listener = new TcpListener(IPAddress.Any, Server.port);
listener.Start();
soc = listener.AcceptSocket();
s = new NetworkStream(soc);
sr = new StreamReader(s);
sw = new StreamWriter(s);
sw.AutoFlush = true; // enable automatic flushing
if (soc.Connected == true)
{
Console.WriteLine("Connected");
sw.WriteLine("Server Connected");
}
this.Hide();
Menu menu = new Menu();
menu.Show();
}
void recieve()
{
Console.WriteLine(sr.ReadLine());
}
public void close()
{
s.Close();
soc.Disconnect(true);
Menu menu = new Menu();
menu.Close();
this.Show();
}
public void send(string msg)
{
sw.WriteLine(msg);
}
这是按钮的代码:
ServerGUI sgui = new ServerGUI();
public Menu()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
sgui.close();
}
private void button2_Click(object sender, EventArgs e)
{
sgui.send(textBox1.Text);
}
的代码的WriteLine在连接方法的作品,但在t时的代码他发送方法没有。我试过这个问题:What is a NullPointerException, and how do I fix it?但它没有帮助我。 感谢
告诉你如何调用'send'和'connect'。并且,你调试了吗?.. –
如果你真的不能追踪其他问题和答案的空指针,你需要提供一个[mcve]。只是向我们展示了两个片段,并向我们保证该程序的结构正确以确保没有空值是不够的(尤其是因为,如果情况如此,则不会有空引用 - 显然,您的假设目前不正确) –
你在哪里叫'发送'? –