c# - Client sends a UDP Packet to a server over the internet, but it could not recieve any UDP packages from the server -


client sends udp packet server on internet, not recieve udp packages server.

server has valid ip , i'm connected internet via adsl

in both server , client these codes used:

send packet:

socket sock1 = new socket(addressfamily.internetwork, sockettype.dgram, protocoltype.udp);                     ipendpoint iep1 = new ipendpoint(ipaddress.parse(txt_ip.text), convert.toint32(txt_sendport.text)); byte[] data = encoding.ascii.getbytes("udp");  sock1.setsocketoption(socketoptionlevel.socket, socketoptionname.broadcast, true); sock1.sendto(data, iep1); 

receive packet:

console.writeline("listening port {0}", portnumber); sock1 = new socket(addressfamily.internetwork, sockettype.dgram, protocoltype.udp); ipendpoint iep = new ipendpoint(ipaddress.any, portnumber); sock1.bind(iep); endpoint ep = (endpoint)iep; byte[] data1 = new byte[100]; int recv = sock1.receivefrom(data1, ref ep); sock1.close(); string str_data = encoding.ascii.getstring(data1, 0, recv); string str_ip = ep.tostring().substring(0, ep.tostring().indexof(":")); console.writeline("received succesfully: {0} - {1}", str_data, str_ip); 

my nic ip 169.254.254.5, server shows ip 188.136.170.14 , send reply 188.136.170.14 (188.136.170.14 ip of access point). how can change code in server side send bank packet client correctly?

by access point, router? said adsl, i'll assume is.

your router spans 2 networks. internet on 1 side in form of isp & internal network on other. why server sees router ip, not nic ip.

you need define port forward rule on router send inbound traffic on port you're using onwards pc. don't use broadcast either - contacting number of nics on subnet.

strictly speaking more of network issue rather programming one.


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -