Hi
I have been trying to make a request-reply application using UDP where the client i behind a router and the Server isn't. But I am having problem recieving the reply.
Can anyone help me :P, i have been staring at this code for hours now.
The code i use on both the client and server:
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.Net.Sockets;
using System.Threading;
namespace sender
{
public partial class Form1 : Form
{
private UdpClient udpklient = new UdpClient();
UdpClient server = new UdpClient(12345);
public Form1()
{
InitializeComponent();
//StartServer();
}
private void BtnServer_Click(object sender, EventArgs e)
{
StartServer();
}
private void StartServer()
{
//start server tråd
Thread ServerThread = new Thread(new ThreadStart(TheServer));
ServerThread.Start();
}
private void TheServer()
{
byte[] data;
string str = "";
IPEndPoint recvpt = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
data = server.Receive(ref recvpt);
str = Encoding.ASCII.GetString(data);
if (str == "hejsa")
{
//byte[] senddata = Encoding.ASCII.GetBytes("hej");
//udpklient.Send(senddata, senddata.Length, recvpt);
Send("hej", recvpt);
}
MessageBox.Show(str + " - ip : " + recvpt.Address.ToString() + " port : " + recvpt.Port.ToString());
}
}
private void BtnSend_Click(object sender, EventArgs e)
{
Send(textBox1.Text, Txtip.Text, int.Parse(TxtPort.Text));
}
private void Send(string Besked, string Modtager, int port)
{
byte[] senddata = Encoding.ASCII.GetBytes(Besked);
udpklient.Send(senddata, Besked.Length, Modtager, port);
}
private void Send(string Message, IPEndPoint Reciever)
{
byte[] senddata = Encoding.ASCII.GetBytes(Message);
udpklient.Send(senddata, senddata.Length, Reciever);
}
No replies to this topic
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users


Sign In
Create Account

Back to top









