Cool Joe
Cool Joe

Reputation: 315

Using WinSocks in C to send data to a c# application on same machine, "target host refusing connectiong(c# part)

I am trying to get data from my interface, written in c, to another application, in c#.

Now, I'm not sure if WinSocks is pure c, but I'm using visual studio and the rest of my interface is 100% pure C.

Here is my "client" written in c#

http://pastebin.com/X9SNcVqn

here is my "server" written in c - loops waiting for a connection, this builds AND RUNS without issues

NOTE: DEFAULT_PORT is 18042, used the same port for client and server side.

I've downloaded wireshark and used the command "tcp.port eq "

http://pastebin.com/FHZyre2V

I also tried going through my windows firewall and NORTON to allow this connection, I couldn't figure out what to do. Most of the tuts I saw where outdated and tabs and options are changed in WINDOWS 7

I chose a port that wasn't being used, I tried using wireshark to see the connections, no luck BUT I scanned the port I used with nmap, before AND after I ran the "server", so it must of atleast have been created

Upvotes: 2

Views: 274

Answers (3)

Ted Elliott
Ted Elliott

Reputation: 3503

In your C# code you are mixing TcpClient and Socket objects. You don't need both, only the TcpClient. (The Socket code is using the wrong port as well). Once the TcpClient object is connected, call the GetStream method to get a NetworkStream object that you can read and write to to send and receive data to the server process.

See the example code in the documentation, here: http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspx

Upvotes: 1

llj098
llj098

Reputation: 1412

First,check if the IP adress is correct and if the corresponding port is listeing.

netstat -an | find "port number"

and I think, in the server side code

local.sin_port = (unsigned short)DEFAULT_PORT;

Should be:

local.sin_port = htons((unsigned short)DEFAULT_PORT);

Upvotes: 0

sarnold
sarnold

Reputation: 104080

Your client code contains:

IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.1.4"), 18041);

I would not necessarily expect the IP address bound to a network card to necessarily work for localhost-to-localhost connections. I'd recommend changing your client to use 127.0.0.1 or another suitable loopback address.

Upvotes: 0

Related Questions