TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
JoJo
NA
6
0
UDP broadcast not received.. Help please..
May 9 2008 2:22 PM
Hi...
I have written a UDP client and server program (both in one application) which resides in the same computer. The server's ip is 192.168.2.2 and its port is 1001. The client's ip is also 192.168.2.2 and of course it will send data to 1001. The server is able to receive data from the client perfectly.
Next, I tried to send UDP broadcast packet from another computer. This time, the server is not able to capture the UDP broadcast. However, the packet is captured by Wireshark (on the server's computer) which means that packets did arrive..
The message on Wireshark is
"1 0.000000 192.168.2.4 255.255.255.255 UDP Source port: 4328 Destination port: discard"
From the message on Wireshark, it can be seen that the UDP packet was sent from 192.168.2.4.
Anybody know why my server program below is able to receive data from client (in the same computer) but not able to receive a broadcast packet from another computer..?
Please advise.. Thanks..
Below is the client/server code.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace UDPClient1
{
public partial class Form1 : Form
{
IPEndPoint ipepC;
IPEndPoint ipepS; //ipep
EndPoint epC;
EndPoint epS; //Remote
EndPoint Sender; //Sender
Socket udpsrv;
Socket udpclnt; //newsock
byte[] byteSend;
byte[] byteRcv; //data
int intRcv;
bool epSFlag = false;
bool displayRcvFlag = false;
int bufferSize = 320;
string stringRcv = "";
Thread serverThread;
public Form1()
{
InitializeComponent();
}
//****************** CLIENT
private void button1_Click(object sender, EventArgs e)
{
ipepC = new IPEndPoint(IPAddress.Parse(textBox1.Text), Convert.ToInt16(textBox2.Text));
udpclnt = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
}
private void button2_Click(object sender, EventArgs e)
{
udpclnt.Close();
}
private void button3_Click(object sender, EventArgs e)
{
byteSend = new byte[bufferSize];
byteSend = Encoding.ASCII.GetBytes(textBox3.Text);
udpclnt.SendTo(byteSend, ipepC);
}
//************ SERVER
private void button5_Click(object sender, EventArgs e)
{
ipepS = new IPEndPoint(IPAddress.Parse(textBox5.Text), Convert.ToInt16(textBox6.Text));
udpsrv = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
udpsrv.Bind(ipepS);
Sender = new IPEndPoint(IPAddress.Any, 0);
epS = (EndPoint)(Sender);
serverThread = new Thread(new ThreadStart(WaitReceive));
serverThread.Start(); //epSFlag = true;
}
private void WaitReceive()
{
int recv;
byte[] data;
while (true)
{
data = new byte[1024];
recv = udpsrv.ReceiveFrom(data, ref epS);
stringRcv = ((Encoding.ASCII.GetString(data, 0, recv)));
displayRcvFlag = true;
}
}
private void button6_Click(object sender, EventArgs e)
{
udpsrv.Close();
serverThread.Abort();
}
private void button4_Click(object sender, EventArgs e)
{
textBox4.Text = "";
}
private void tmrRcv_Tick(object sender, EventArgs e)
{
}
private void tmrDisplay_Tick(object sender, EventArgs e)
{
if (displayRcvFlag == true)
{
textBox4.Text = stringRcv;
displayRcvFlag = false;
}
}
}
}
Reply
Answers (
0
)
Two triggers, same ControlID
dynamically generated web controls asp.net best method to access values at runtime?