473,499 Members | 1,681 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to develop SoftRepeater in C#

4 New Member
I want to develop an application which will act as a repeater between two computers in wireless network. for example if there are three computers in a wireless network A, B, and C, now if A wants to send some data to C, It sends it to B which then transfer it to C.

Now I know it can be done using sockets, but i also need to receive all the acknowledgement sent by C to A through B only, I can't find anything in socket to recieve ACKs.

So, I m confuse wether to use socket or some other APIs, may be some thing that communicate directly to the wireless adapter ????

Thank in Advance,
Jan 13 '10 #1
7 2245
tlhintoq
3,525 Recognized Expert Specialist
Do you really need to understand what is being sent?
In reality it is all just bytes. If you get a byte from a, send it to c. If you get a byte from c, send it to a. Whether it eventually gets converted to text or a picture or an ACK really doesn't matter if the only purpose of the 'b' computer is to be a repeater: just repeat the byte array you receive
Jan 13 '10 #2
Plater
7,872 Recognized Expert Expert
If you are talking about the TCP protocol's ACKs, then those are handled for you by the stack, just FIFO the bytes back and forth and you should be fine.
Jan 13 '10 #3
psargam
4 New Member
Dear tlhintoq,

First of all thanks for your reply,
Well I know i just need to transfer byte from A to c and c to a, but what is the problem is I also need to handle ack from both machines.

i. e. Suppose A is sending 5MB of data using TCP to C. It actually send it to B which will not send the ACK to A but only forwards it to C now C sends an ACK to B which forwards it to A.

I know sockets and winsock 2 API are used to transfer data from one machine to another but as far as I know they do not have any tools to send and recieve ACKs, the protocol used in transmission can be any not just TCP and "I need to store all the ACKs for further use as it is research project, we need every bit transfered need to be stored".

so if you can help then tell me if there is any free API that allows me to work at a level where I can recieve packets and ACKs intended to some other machine arriving at my wifi adapter and send it to desired machine by regenerating the packet.
Jan 16 '10 #4
psargam
4 New Member
Dear Plater,

Thanks for your reply,

I know TCP it self manages ACKs, and that my problem is I want to manage ACKs my self.

Consider the scenario, A is sending data to C through B, so what happens,
A will send data to B so B will send ACK(1) to A. now B will send data to C which again send ACK(2) to B Which again send it to A.

so for ACK I required three transfer if I use tools like socket or winsock API.
as handling ACKs is there duty and we can not tell Bs socket that wait until C send you a reply and after it reply you send it as reply to A.

Thanks again,
Jan 16 '10 #5
tlhintoq
3,525 Recognized Expert Specialist
An ack is nothing more than a hex 06
http://www.december.com/html/spec/ascii.html
So as you are repeating the bytes, check to see if the byte is a hex 06 and react how you like: Repeat it, log it "store it for future processing". Or if you feel it is being stripped out by TCP/ip protocol then add it back in.

i. e. Suppose A is sending 5MB of data using TCP to C. It actually send it to B which will not send the ACK to A but only forwards it to C now C sends an ACK to B which forwards it to A.
Right. You need the ACKs to be forwarded or you will never complete the 5mb transfer. After all that 5mb transfer is really going to be a lot of smaller packets each with their own ACKnowledgment. If the ACK is not received then the packet will be resent, and resent and resent until it is ACKnowledged.

Consider the scenario, A is sending data to C through B, so what happens,
A will send data to B so B will send ACK(1) to A. now B will send data to C which again send ACK(2) to B Which again send it to A.
So you are saying that your softreapeter is not going to repeat the data in real time? That it is buffering the data before it re-sends it? That is going to seriously impact the speed of the transmission from A to C.
Jan 16 '10 #6
psargam
4 New Member
thanx tlhintoq again for shwoing intrest in my thread,

yes my software repeater needs to buffer data regardless of performance consideration.

And please tell me what API should I use (Sockets, winsock kernel driver, windows filtering callout driver, network programming interface, NDIS or any other) to handle each and every packet and ACK from my softrepeater ???

I know all therotically, which is similar to what you are understanding and saying.

But, I m unaware of the programming tool to do it in C#, that's why I am asking it here.

Thanx again
Jan 18 '10 #7
tlhintoq
3,525 Recognized Expert Specialist
And please tell me what API should I use (Sockets, winsock kernel driver, windows filtering callout driver, network programming interface, NDIS or any other) to handle each and every packet and ACK from my softrepeater ???
I don't have a deep enough knowledge of all these different scheme to be able to give you advice on where one would be better than another.
Jan 18 '10 #8

Sign in to post your reply or Sign up for a free account.

Similar topics

4
2519
by: Jonathan Li | last post by:
I have posted the question before but nobody have given me a solution. I would like to rephrase my requirement and want to hear your advice. We are developing application packages for logistics...
2
1709
by: [b2:ss] | last post by:
Can i distribute an application made with #develop under some commercial license (sahreware)? The GNU license is valid for modifyed versions of #develop source code only, or also for software made...
13
1412
by: charliewest | last post by:
I am somewhat confused with what tool i need to develop Web applications w/ ASP.NET 2.0. Is it possible to use VS .Net 2003, or do i need to use the Beta versions of 2005 - Visual Web Developer...
1
1196
by: Patrick | last post by:
With VS.NET Standard (not VS.NET Professional). Can i develop windows Services with this? Also, can i develop components for .NET Remoting? Currently I develop windows services with my VS.NET...
2
2194
by: John A. Bailo | last post by:
I've been following these guys for a while and use their GPL'd ICSharpZip library quite a bit. The #develop seems to be getting better and better. http://icsharpcode.net/OpenSource/SD/ ...
2
1545
by: ljgomez | last post by:
Hi everyone I just starting to develop in AJAX and I'm very interested in develop over PHP & Javascript. My question is about witch tools do you use for it. I'ven seen Zend Studio and someone...
16
2551
by: Rainer Queck | last post by:
Hi, What would be the best way to develop a class library? I am planing to develop a couple of classes, needed in our company enviroment. These classe will be later used in several projects. ...
11
3269
by: Michael | last post by:
I'm new to PHP, I already learned the basics of the language and built some little app's for practice. I have a critical dilemma, soon enough, I probably start to develop real-world...
0
1848
by: geshan | last post by:
Lets see and compare the 4 ways (not tools) to develop/code your own PHP website or web application. The following are the ways you can code/develop your application (involving more Create Read...
0
7006
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7169
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
6892
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7385
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5467
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
4917
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
3096
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3088
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
294
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.