|
|
|
object reference not set to an instance of an object แก้ยังไง |
|
|
|
|
|
|
|
ผมอยากจะให้ Method ReceiveData ทำงานใน Timer1 ครับ แต่ขึ้น object reference not set to an instance of an object
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using Utility;
namespace Wifi_Control
{
public partial class Form1 : Form
{
private Socket client;
private Thread receiver;
private byte[] data = new byte[1024];
private byte[] data1 = new byte[1024];
public Form1()
{
InitializeComponent();
}
private void connected(IAsyncResult iar)
{
try
{
client.EndConnect(iar);
lblsta.Text = "Connected";
receiver = new Thread(new ThreadStart(ReceiveData));
receiver.Start();
}
catch
{
MessageBox.Show("ไม่สามารถเชื่อต่อได้ โปรดตรวจสอบข้อมูล");
}
}
private void ReceiveData() //รับ packet จาก Client/Server
{
int recv;
string strData ;
while (client.Connected) //เช็คสถานะการเชื่อมต่อ
{
try
{
recv = client.Receive(data); // คืนค่าเป็นความยาวของ Data
strData = Encoding.Default.GetString(data, 0, recv);
string[] getdata = strData.Split(',');
textBox1.Text = getdata[0];
textBox2.Text = getdata[1];
richTextBox2.AppendText("รับ: " + strData + "\n");
}
catch (SocketException ex)
{
MessageBox.Show(ex.Message, "Client");
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void BtnCon_Click(object sender, EventArgs e)
{
try
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep = new IPEndPoint(IPAddress.Parse(TxtIP.Text), int.Parse(TxtPort.Text));
client.BeginConnect(iep, new AsyncCallback(connected), client);
}
catch
{
MessageBox.Show("เชื่อมต่อเซิฟเวอร์ไม่สำเร็จ โปรดตรวจความถูกต้อง");
}
}
private void label2_Click(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
reg["port"] = TxtPort.Text;
reg["url"] = TxtIP.Text;
try
{
BtnCon_Click(sender, e);
}
catch
{
}
}
string port = "";
string url = "";
MyReg reg = new MyReg("ArduinoAll");
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Enabled = true;
try
{
port = reg["port"].ToString();
url = reg["url"].ToString();
TxtIP.Text = url;
TxtPort.Text = port;
}
catch
{
reg["port"] = "";
reg["url"] = "";
}
}
private void BtnDis_Click(object sender, EventArgs e)
{
if (client.Connected)
{ // receiver.Abort();
receiver.Abort(client);
lblsta.Text = "Disconnected";
client.Close(5);
}
else
{
MessageBox.Show("ไม่มีการเชื่อมต่อ");
}
}
private void SendData(IAsyncResult iar)
{
try
{
Socket remote = (Socket)iar.AsyncState;
int sent = remote.EndSend(iar);
}
catch (SocketException ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
InputTxt.Text = "ON";
BtnSend_Click(sender, e);
}
private void timer1_Tick(object sender, EventArgs e)
{
ReceiveData();
}
}
}
Tag : .NET, C#
|
ประวัติการแก้ไข 2016-06-13 08:37:52
|
|
|
|
|
Date :
2016-06-12 16:04:34 |
By :
meatspin |
View :
1973 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Error บรรทัดไหนครับ ?
|
|
|
|
|
Date :
2016-06-13 00:44:01 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องดูว่า Server ที่ส่งมา มี port อะไร และ Server กับ Client มัน Connection กันจริงไหม เท่าที่ดูมันเหมือนกับว่า ไม่สามารถรับค่ามาได้นะครับ
|
|
|
|
|
Date :
2016-06-13 13:47:51 |
By :
bigsuntat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|