473,695 Members | 2,477 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Cannot See It!

All,

Any ideas why the following code prints zeros for the message id,
number of packets and sequence number as shown in the sample output
below? Somehow I am not being able to access the contents of my
'incomingDataBu ffer' array. I have also included some values from the
respective MSVC 6.0 debug session.

Thank you!

-RB

-------------------------------------------------------------------------------
#include<window s.h>
#include<iostre am>
#include<string >
#include<stdio. h>
#include<stdlib .h>

using namespace std;

int main(int argc, char * argv[])
{
WSADATA wsaData;
SOCKADDR_IN serverAddress;
SOCKADDR_IN clientAddress;
SOCKET receivingSocket ;
int port = 7797;
int length;
char incomingDataBuf fer[600];

int ret = WSAStartup(MAKE WORD(2,0), &wsaData);

if (ret != 0)
{
int errorCode = WSAGetLastError ();
cout<<"ERROR ["<<errorCod e<<"] initializing WinSock!"<<endl ;
exit(1);
}
if (LOBYTE(wsaData .wVersion)!= 2 || HIBYTE(wsaData. wVersion)!= 0)
{
cout<<"Invalid Winsock Version"<<endl;
WSACleanup();
exit(1);
}
if (port < 1)
{
cout<<"Invalid UDP port"<<endl;
exit(1);
}
if ((receivingSock et = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
cout<<"Unable to create socket"<<endl;

memset((char*)& serverAddress,0 ,sizeof(serverA ddress));
serverAddress.s in_family = AF_INET;
serverAddress.s in_addr.s_addr = htons(INADDR_AN Y);
serverAddress.s in_port = htons(port);

int status = bind(receivingS ocket,
(sockaddr*)&ser verAddress,size of(serverAddres s));

if (status < 0)
{
cout<<"Error: bind() failed."<<endl;
exit(1);
}

// join multicast group...
struct ip_mreq mreq;

mreq.imr_multia ddr.s_addr = inet_addr("225. 0.0.100");
mreq.imr_interf ace.s_addr = INADDR_ANY;

// add membership/subscribe to group...
status = setsockopt(rece ivingSocket, IPPROTO_IP,
IP_ADD_MEMBERSH IP,(char*)&mreq , sizeof(mreq));

memset(&clientA ddress, 0, sizeof(clientAd dress));
length = sizeof(clientAd dress);

for(;;)
{
int numberOfBytesRe ceived = 0;

numberOfBytesRe ceived =
recvfrom(receiv ingSocket,incom ingDataBuffer,6 00,0,(sockaddr* )&clientAddress ,&length);

if (numberOfBytesR eceived == SOCKET_ERROR)
{
int wsaError = WSAGetLastError ();
cout<<"Winsock error ["<<wsaError <<"]"<<endl;
// leave/unsubscribe from multicast group...
status = setsockopt(rece ivingSocket, IPPROTO_IP,
IP_DROP_MEMBERS HIP,(char*)&mre q, sizeof(mreq));
exit(1);
}
else
{
cout<<endl<<"Re ceived ["<<numberOfByte sReceived<<"]
bytes"<<endl;

// the ID is the first 8 bytes of the header...
int id = atoi(strncpy(ne w char[32],incomingDataBu ffer,8));
// the total number of packets are the 15th and 16th bytes
of the header...
int totalPackets = atoi(strncpy(ne w char[32],
incomingDataBuf fer + 14, 2));
// the sequence number is 13th and 14th byte of the
header...
int sequenceNumber = atoi(strncpy(ne w char[32],
incomingDataBuf fer + 12, 2));

cout<<"Message ID.....: "<<id<<endl ;
cout<<"Total Packets..: "<<totalPackets <<endl;
cout<<"Sequence Number: "<<sequenceNumb er<<endl;
}
}
closesocket(rec eivingSocket);
return(0);
}

/*
Sample output:
--------------------
Received [538] bytes
Message ID.....: 0
Total Packets..: 0
Sequence Number: 0

Received [522] bytes
Message ID.....: 0
Total Packets..: 0
Sequence Number: 0

Received [522] bytes
Message ID.....: 0
Total Packets..: 0
Sequence Number: 0

Received [530] bytes
Message ID.....: 0
Total Packets..: 0
Sequence Number: 0

Received [530] bytes
Message ID.....: 0
Total Packets..: 0
Sequence Number: 0

In the MS-Visual C++/-EE-6.0 debugger:

Values before the "recvfrom" call:
-------------------------------------
+ &clientAddre ss 0x0012fdd0
+ incomingDataBuf fer 0x0012fb6c
"面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面面面面面面面 面"
+ &length 0x0012fdc4
numberOfBytesRe ceived 0
receivingSocket 2972

Values after the "recvfrom" call:
-------------------------------------
+ &clientAddre ss 0x0012fdd0
+ incomingDataBuf fer 0x0012fb6c ""
+ &length 0x0012fdc4
numberOfBytesRe ceived 514
receivingSocket 2972
*/
Jul 22 '05 #1
7 1934

"Ramiro Barbosa, Jr." <ra******@yahoo .com> wrote in message
news:9d******** *************** ***@posting.goo gle.com...
All,

Any ideas why the following code prints zeros for the message id,
number of packets and sequence number as shown in the sample output
below? Somehow I am not being able to access the contents of my
'incomingDataBu ffer' array. I have also included some values from the
respective MSVC 6.0 debug session.


I'm guessing here but I think you do not understand how to decode the
message id etc from the packet.

I think the numbers are in binary not in ASCII which is what you are
assuming. For instance I think you would have more luck with the following

int sequenceNumber = (unsigned char)incomingDa taBuffer[12] + 256*(unsigned
char)incomingDa taBuffer[13];

or maybe the other way round

int sequenceNumber = 256*(unsigned char)incomingDa taBuffer[12] + (unsigned
char)incomingDa taBuffer[13];

Try both ways (which is right depends on which order the bytes are in).

Similar methods for the total packets and message id. Althoug with the
message id you have to figure out how to deal with an eight byte integer.

But as I say, I'm guessing.

john
Jul 22 '05 #2
On 21 Oct 2004 12:59:28 -0700, ra******@yahoo. com (Ramiro Barbosa, Jr.)
wrote:
All,

Any ideas why the following code prints zeros for the message id,
number of packets and sequence number as shown in the sample output
below? Somehow I am not being able to access the contents of my
'incomingDataB uffer' array. I have also included some values from the
respective MSVC 6.0 debug session.

Thank you!

// the ID is the first 8 bytes of the header...
int id = atoi(strncpy(ne w char[32],incomingDataBu ffer,8));
That's a memory leak. You might want to use a static buffer of 32
charaters, or assign the 32 characters to a buffer to be deleted after use.

Anyway, atoi only works on string representation of a number. It will not
work on binary representations of a number, which is what I suspect is the
case. Also, when dealing with sockets, the numbers presented might not
match up with the expected value - thus you will have to find a way to
reverse the bytes of the number.

One last thing: with strncpy, a null character is not appended if all 8 or
so characters are filled up. You should add a null character manually, or
otherwise ensure that the buffer of 32 characters is initially clean.
// the total number of packets are the 15th and 16th bytes
of the header...
int totalPackets = atoi(strncpy(ne w char[32],
incomingDataBu ffer + 14, 2));
// the sequence number is 13th and 14th byte of the
header...
int sequenceNumber = atoi(strncpy(ne w char[32],
incomingDataBu ffer + 12, 2));
Same applies with these two assignments as well.


Values after the "recvfrom" call:
-------------------------------------
+ &clientAddre ss 0x0012fdd0
+ incomingDataBuf fer 0x0012fb6c ""


You might want to view the contents of "incomingDataBu ffer". This will
give you a better look at what is going on with how the header information
is stored.

Jul 22 '05 #3
All,

Thanks a lot for your valuable input. I was indeed considering the
input from the socket as ASCII and that was wrong. I revised my
program and I have adopted the ideas that you have given me, thus
getting some very good results. I am attaching my revised program
which still has one problem. Please check the commeents in the code
towards the end of the program. Also, if John Harrison gets to see
this message I would like to know/understand why he suggested me to
take for example the value in a subindex of the incoming buffer array
and cast it to an unsigned char then multiply by 256.

Thank you all, and best regards!

-RB
bk***@freenet.c arleton.ca (Raymond Martineau) wrote in message news:<7v******* *************** **********@4ax. com>...
On 21 Oct 2004 12:59:28 -0700, ra******@yahoo. com (Ramiro Barbosa, Jr.)
wrote:
All,

Any ideas why the following code prints zeros for the message id,
number of packets and sequence number as shown in the sample output
below? Somehow I am not being able to access the contents of my
'incomingDataB uffer' array. I have also included some values from the
respective MSVC 6.0 debug session.

Thank you!

// the ID is the first 8 bytes of the header...
int id = atoi(strncpy(ne w char[32],incomingDataBu ffer,8));


That's a memory leak. You might want to use a static buffer of 32
charaters, or assign the 32 characters to a buffer to be deleted after use.

Anyway, atoi only works on string representation of a number. It will not
work on binary representations of a number, which is what I suspect is the
case. Also, when dealing with sockets, the numbers presented might not
match up with the expected value - thus you will have to find a way to
reverse the bytes of the number.

One last thing: with strncpy, a null character is not appended if all 8 or
so characters are filled up. You should add a null character manually, or
otherwise ensure that the buffer of 32 characters is initially clean.
// the total number of packets are the 15th and 16th bytes
of the header...
int totalPackets = atoi(strncpy(ne w char[32],
incomingDataBu ffer + 14, 2));
// the sequence number is 13th and 14th byte of the
header...
int sequenceNumber = atoi(strncpy(ne w char[32],
incomingDataBu ffer + 12, 2));


Same applies with these two assignments as well.


Values after the "recvfrom" call:
-------------------------------------
+ &clientAddre ss 0x0012fdd0
+ incomingDataBuf fer 0x0012fb6c ""


You might want to view the contents of "incomingDataBu ffer". This will
give you a better look at what is going on with how the header information
is stored.

Jul 22 '05 #4
Sorry, forgot to post the code:

#include<window s.h>
#include<iostre am>
#include<string >

using namespace std;

int main(int argc, char * argv[])
{
const int MAX = 65535;
WSADATA wsaData;
SOCKADDR_IN serverAddress;
SOCKADDR_IN clientAddress;
SOCKET receivingSocket ;
int port = 7797;
int length;
char incomingDataBuf fer[MAX];

int ret = WSAStartup(MAKE WORD(2,0), &wsaData);

if (ret != 0)
{
int errorCode = WSAGetLastError ();
cout<<"ERROR ["<<errorCod e<<"] initializing WinSock!"<<endl ;
exit(1);
}
if (LOBYTE(wsaData .wVersion)!= 2 || HIBYTE(wsaData. wVersion)!= 0)
{
cout<<"Invalid Winsock Version"<<endl;
WSACleanup();
exit(1);
}
if (port < 1)
{
cout<<"Invalid UDP port"<<endl;
exit(1);
}
if ((receivingSock et = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
cout<<"Unable to create socket"<<endl;

memset((char*)& serverAddress,0 ,sizeof(serverA ddress));
serverAddress.s in_family = AF_INET;
serverAddress.s in_addr.s_addr = htons(INADDR_AN Y);
serverAddress.s in_port = htons(port);

int status = bind(receivingS ocket,
(sockaddr*)&ser verAddress,size of(serverAddres s));

if (status < 0)
{
cout<<"Error: bind() failed."<<endl;
exit(1);
}

// join multicast group...
struct ip_mreq mreq;

mreq.imr_multia ddr.s_addr = inet_addr("225. 0.0.100");
mreq.imr_interf ace.s_addr = INADDR_ANY;

// add membership/subscribe to group...
status = setsockopt(rece ivingSocket, IPPROTO_IP,
IP_ADD_MEMBERSH IP,(char*)&mreq , sizeof(mreq));

memset(&clientA ddress, 0, sizeof(clientAd dress));
length = sizeof(clientAd dress);

for(;;)
{
for(int count = 0; count < MAX; count++)
{
incomingDataBuf fer[count] = '\0';
}
int numberOfBytesRe ceived = 0;

numberOfBytesRe ceived =
recvfrom(receiv ingSocket,incom ingDataBuffer,M AX,0,(sockaddr* )&clientAddress ,&length);

if (numberOfBytesR eceived == SOCKET_ERROR)
{
int wsaError = WSAGetLastError ();
cout<<"Winsock error ["<<wsaError <<"]"<<endl;
// leave/unsubscribe from multicast group...
status = setsockopt(rece ivingSocket, IPPROTO_IP,
IP_DROP_MEMBERS HIP,(char*)&mre q, sizeof(mreq));
exit(1);
}
else
{
cout<<endl<<"Nu mber of bytes in packet
received.....["<<numberOfByte sReceived<<"]"<<endl;

// this is not working!

/* DETAILS OF PROBLEM:
- messageId variable below should result in a big number which
looks something like
"1098717778 156" (the number of miliseconds from Jan 01, 1970 used
as the ID).

- The data is coming from a Java server which sends the 'id' in
the first 8 bytes of
the header. The Java value of that ID is a long. Below is the
buffer showing what I
am receiving.

/* The following are values printed from a debug session (MSVC 6.0)
//---------------------------------------------------------------------------
// ARRAY DECIMAL BINARY
//---------------------------------------------------------------------------
incomingDataBuf fer[0] 0 ''
incomingDataBuf fer[1] 0 ''
incomingDataBuf fer[2] 0 ''
incomingDataBuf fer[3] -1 'some binary here'
incomingDataBuf fer[4] -47 'some binary here'
incomingDataBuf fer[5] -119 'some binary here'
incomingDataBuf fer[6] 2 'some binary here'
incomingDataBuf fer[7] 25 'some binary here'

// this is what I am doing but I am getting a much smaller number
as far as the number of digits.
// I need to fit the 8 incoming bytes in a C++ type. However, C++
long is only 4 bytes
// in my platform (Win2K).

// These are the sizes of types in my platform:
---------------------------------------------------------------------
C++ Windows Types/Sizes:
---------------------------------------------------------------------
Size int: 4
Size long: 4
Size double: 8
Size short: 2
Size long int: 4

----------------------------------------------------------------------
Java type sizes
----------------------------------------------------------------------
Type Bits Min Value Max Value
byte 8 -128 127
short 16 -32,768 32,767
int 32 -2,147,483,648 2,147,483,647
long 64 -9,223,372,036,8 54,775,808
9,223,372,036,8 54,775,807
----------------------------------------------------------------------
*/
// not working...
long messageID =
256 * (unsigned char)incomingDa taBuffer[0]
+ (unsigned char)incomingDa taBuffer[1]
+ (unsigned char)incomingDa taBuffer[2]
+ (unsigned char)incomingDa taBuffer[3]
+ (unsigned char)incomingDa taBuffer[4]
+ (unsigned char)incomingDa taBuffer[5]
+ (unsigned char)incomingDa taBuffer[6]
+ (unsigned char)incomingDa taBuffer[7];

// working!
int messageSize =
256 * /*(unsigned char)incomingDa taBuffer[8] */ // check if this
guy is empty....
/*+ (unsigned char)incomingDa taBuffer[9] */
(unsigned char)incomingDa taBuffer[10]
+ (unsigned char)incomingDa taBuffer[11];
cout<<"Message Size...: "<<messageSize< <endl;

// working!
int sequenceNumber =
256*(unsigned char)incomingDa taBuffer[12]
+ (unsigned char)incomingDa taBuffer[13];
cout<<"Sequence Number: "<<sequenceNumb er<<endl;

// working!
int totalPackets =
256*(unsigned char)incomingDa taBuffer[14] + (unsigned
char)incomingDa taBuffer[15];
cout<<"Total Packets..: "<<totalPackets <<endl;

// working!
int isEncrypted = (unsigned char)incomingDa taBuffer[16];
cout<<"Encrypti on.....: "<<((isEncrypte d == 1) ? "Encrypted" :
"Not encrypted")<<en dl;

// working!
int isCompressed = (unsigned char)incomingDa taBuffer[17];
cout<<"Compress ion....: "<<((isCompress ed == 1) ? "Compressed " :
"Not compressed")<<e ndl;
}
}
closesocket(rec eivingSocket);
return(0);
}
Jul 22 '05 #5

"Ramiro Barbosa, Jr." <ra******@yahoo .com> wrote in message
news:9d******** *************** ***@posting.goo gle.com...
All,

Thanks a lot for your valuable input. I was indeed considering the
input from the socket as ASCII and that was wrong. I revised my
program and I have adopted the ideas that you have given me, thus
getting some very good results. I am attaching my revised program
which still has one problem. Please check the commeents in the code
towards the end of the program. Also, if John Harrison gets to see
this message I would like to know/understand why he suggested me to
take for example the value in a subindex of the incoming buffer array
and cast it to an unsigned char then multiply by 256.

Thank you all, and best regards!


Because on some platforms chars are signed quantities, so you cast to
unsigned char to be sure.

john
Jul 22 '05 #6
John,

Why you multiply by 256?

-RB

"John Harrison" <jo************ *@hotmail.com> wrote in message news:<2u******* ******@uni-berlin.de>...
"Ramiro Barbosa, Jr." <ra******@yahoo .com> wrote in message
news:9d******** *************** ***@posting.goo gle.com...
All,

Thanks a lot for your valuable input. I was indeed considering the
input from the socket as ASCII and that was wrong. I revised my
program and I have adopted the ideas that you have given me, thus
getting some very good results. I am attaching my revised program
which still has one problem. Please check the commeents in the code
towards the end of the program. Also, if John Harrison gets to see
this message I would like to know/understand why he suggested me to
take for example the value in a subindex of the incoming buffer array
and cast it to an unsigned char then multiply by 256.

Thank you all, and best regards!


Because on some platforms chars are signed quantities, so you cast to
unsigned char to be sure.

john

Jul 22 '05 #7

"Ramiro Barbosa, Jr." <ra******@yahoo .com> wrote in message
news:9d******** *************** ***@posting.goo gle.com...
John,

Why you multiply by 256?


A byte is eight bits, so it can be any number from 0 - 255. When you have
two bytes representing a number in binary, it's like a two digit number with
each byte being one digit. But its a base 256 number so you multiply the
most significant byte by 256.

john
Jul 22 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
5473
by: baustin75 | last post by:
Posted: Mon Oct 03, 2005 1:41 pm Post subject: cannot mail() in ie only when debugging in php designer 2005 -------------------------------------------------------------------------------- Hello, I have a very simple problem but cannot seem to figure it out. I have a very simple php script that sends a test email to myself. When I debug it in PHP designer, it works with no problems, I get the test email. If
10
4455
by: Jean-David Beyer | last post by:
I have some programs running on Red Hat Linux 7.3 working with IBM DB2 V6.1 (with all the FixPacks) on my old machine. I have just installed IBM DB2 V8.1 on this (new) machine running Red Hat Enterplise Linux 3 ES, and applied FixPack fp5_mi00069.tar to it. After creating an instance, starting the database, creating a database, and entering the table definitions, all of which seems to work OK, I entered a tiny 8-row table and can do...
1
6626
by: Peter | last post by:
I've purchased VS.NET 2005 Standard and have tried to install SQL Server 2005 Express, but get the following error in the error log. Please could someone help me.... Microsoft SQL Server 2005 Express Edition x86: Component Microsoft SQL Server 2005 Express Edition x86 returned an unexpected value. ***EndOfSession***? Microsoft SQL Server 2005 Express Edition x86: Component Microsoft SQL Server 2005 Express Edition x86 returned an...
3
16509
by: David T. Ashley | last post by:
Hi, Red Hat Enterprise Linux 4.X. I'm writing command-line PHP scripts for the first time. I get the messages below. What do they mean? Are these operating system library modules, or something in PHP that I don't have? Do I need to install more Linux packages? Or adjust PHP in some way?
19
7920
by: lawrence k | last post by:
How can I find out where my script is outputting to the screen for the first time? My error logs are full of stuff like this: PHP Warning: session_start(): Cannot send session cache limiter - headers already sent in /home/httpd/vhosts/monkeyclaus.org/httpdocs/media/audio/pdsIncludes/CommandStartSession.php on line 14
1
4626
by: vsp15584 | last post by:
Hii..i use the coding as below :- import java.applet.applet; import java.awt.*; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import javax.media.j3d.*; import javax.vecmath.*;
4
5824
by: ThunderMusic | last post by:
Hi, I have a custom form that works fine when I debug it or run it in release mode but cannot be loaded in the designer... Actually, it can be loaded in the designer when no control is on it, but the resizing tool (in the designer) is offset both horizontally and vertically and when I put a control on it, as soon as I save, the designer throws an exception (but cannot be reproduced everytime) and the form cannot be loaded anymore unless...
3
17114
by: amanjsingh | last post by:
Hi, I am trying to implement Java Web Service using Apache Axis2 and Eclipse as a tool. I have created the basic code and deployed the service using various eclipse plugin but when I try to invoke the service using client stub, I get this error... Exception in thread "main" java.lang.Error: Unresolved compilation problems: org.apache cannot be resolved to a type org.apache cannot be resolved to a type org.apache cannot be resolved to a...
1
4686
by: kw.housing | last post by:
I have all the library already in path: $ ls -l /opt/IBM/db2/lib64 | grep libdb2o -r-xr-xr-x 1 bin bin 7757295 Jul 12 2006 libdb2osse.a* -r--r--r-- 1 bin bin 227313 Jul 12 2006 libdb2osse_db2.a $ env | grep LIBPATH LIBPATH=/opt/IBM/db2/lib64:/home/perfpol2/sqllib/lib64:/usr/lib:/lib However, when I call db2imigr, I still get the following error, what can be
3
3190
by: Sindhu Rani | last post by:
i hav created 3 classes in 3 different files. am gettin an error durin compilation. wat shud i do??? C:\s\source>javac -d ..\classes devtestdrive.java devtestdrive.java:5: cannot resolve symbol symbol : class device location: class devtestdrive device d1=new tv(); ^ devtestdrive.java:5: cannot resolve symbol symbol : class tv
0
8577
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9120
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8831
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 protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7667
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 projectplanning, coding, testing, and deploymentwithout human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6494
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 presenter, Adolph Dupr who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4345
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 last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4583
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3011
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
1978
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 can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.