473,725 Members | 2,232 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Is this the correct way to send a Bitmap over sockets?

I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.

For reading, I am using a TcpClient and I call

NetworkStream ns = client.GetStrea m(); to get a stream

stream.Read(buf fer, 0, buffer.Length);

now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?

MemoryStream ms = new MemoryStream(bu ffer);

Bitmap = new Bitmap(ms);

Does this seem like the correct way to send the Bitmap over my Socket?

I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.

Nov 30 '06 #1
14 11913
Can you not save / load directly to / from the NetworkStream?

bm.Save(ns, System.Drawing. Imaging.ImageFo rmat.Png);

Marc

Nov 30 '06 #2
Hi,

I just tried sending an image (will post a sample in a minute).

GDI+ throws an error if you try to save into the NetworkStream directly.
I don't know why. You can however read the image from the NetworkStream
directly.

-Lenard

Marc Gravell wrote:
Can you not save / load directly to / from the NetworkStream?

bm.Save(ns, System.Drawing. Imaging.ImageFo rmat.Png);

Marc
Nov 30 '06 #3
Hi,

I played a little with this problem, and came up with the following
solution.

For sending, you could use:

TcpListener listener = new TcpListener ( 9998 );
listener.Start ();
TcpClient client = listener.Accept TcpClient ();
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromFile ( @"..file.." );
using ( MemoryStream ms = new MemoryStream () )
{
image.Save ( ms, ImageFormat.Png );
byte[] imageBuffer = ms.GetBuffer ();
stream.Write ( imageBuffer, 0, (int)ms.Length );
}

stream.Close ( 500 );
client.Close ();
listener.Stop ();

Here you don't have to worry about the buffer, because MemoryStream will
handle it for you. For some reason you cannot use the NetworkStream
directly (to save the image into that). GDI+ throws an exception if you
try that. I guess it has something to do with network streams not being
searchable (but that is just a guess).

On the receiving end, you can however read directly from the
NetworkStream. So you could create a method like:

private Image ReceiveBitmap ()
{
TcpClient client = new TcpClient ();
client.Connect ( "127.0.0.1" , 9998 );
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromStrea m ( stream );

stream.Close ();
client.Close ();

return image;
}

This will read your image and return it to the caller. As you can see
you do not need to worry about the length of the buffer, because the
image loader will read the correct number of bytes.

Note however, that I did not do any error checking above.

Another way to solve the problem is to not send just the image onto the
network stream, rather first the size (say an Int32) and then the
contents of the buffer. On the receiving end you would then always read
an Int32 (the length), allocate a buffer that fits the data, and then
receive into that buffer. That way you allocate just as much space as
you need.

Hope this helps

-Lenard


el***********@g mail.com wrote:
I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.

For reading, I am using a TcpClient and I call

NetworkStream ns = client.GetStrea m(); to get a stream

stream.Read(buf fer, 0, buffer.Length);

now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?

MemoryStream ms = new MemoryStream(bu ffer);

Bitmap = new Bitmap(ms);

Does this seem like the correct way to send the Bitmap over my Socket?

I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.
Nov 30 '06 #4
Hi,
I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.

For reading, I am using a TcpClient and I call

NetworkStream ns = client.GetStrea m(); to get a stream

stream.Read(buf fer, 0, buffer.Length);

now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?

MemoryStream ms = new MemoryStream(bu ffer);

Bitmap = new Bitmap(ms);

Does this seem like the correct way to send the Bitmap over my Socket?

I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.
Network programming is never trivial ;)

First, I have to ask, why do you want to do that? (There may be a better
way)

Next, try the code after my signature if you really need to use Sockets.
Beware there is no error handling logic, which I'm sure you'll want to
implement otherwise the app could easily crash.

--
Dave Sexton

using System;
using System.Net.Sock ets;
using System.Threadin g;
using System.Drawing;
using System.Runtime. Serialization.F ormatters.Binar y;
using System.IO;
using System.Net;

namespace Testing
{
class Program
{
const int port = 9483; // arbitrary

static void Main(string[] args)
{
StartServer();

SendBitmap();

Console.WriteLi ne("Press [enter] to exit");
Console.ReadLin e();
}

static void SendBitmap()
{
Bitmap bitmap = new Bitmap(300, 500);
byte[] bytes = null;

Console.WriteLi ne("Client: Created Bitmap: {0}x{1}", bitmap.Width,
bitmap.Height);

Console.WriteLi ne("Client: Serializing Bitmap");

using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter ();
formatter.Seria lize(stream, bitmap);

bytes = stream.ToArray( );
}

Console.WriteLi ne("Client: Connecting to Server");

using (TcpClient client = new TcpClient("loca lhost", port))
{
Console.WriteLi ne("Client: Sending Bitmap");

client.GetStrea m().Write(bytes , 0, bytes.Length);
}

Console.WriteLi ne("Client: Bitmap Sent");
}

static Bitmap AcceptBitmap(Tc pClient client)
{
NetworkStream stream = client.GetStrea m();

byte[] bytes = new byte[1024];
int read = 0;

using (MemoryStream bitmapStream = new MemoryStream())
{
Console.WriteLi ne("Server: Receiving Bitmap");

while ((read = stream.Read(byt es, 0, 1024)) != 0)
// read = 0 indicates that the Socket was closed
bitmapStream.Wr ite(bytes, 0, read);

// reset position to beginning of stream
bitmapStream.Po sition = 0;

Console.WriteLi ne("Server: Bitmap Received");

BinaryFormatter formatter = new BinaryFormatter ();

Console.WriteLi ne("Server: Deserializing Bitmap");

return (Bitmap) formatter.Deser ialize(bitmapSt ream);
}
}

static void StartServer()
{
TcpListener listener = new TcpListener(IPA ddress.Loopback , port);

Thread thread = new Thread(delegate ()
// the listener will run in the background
{
listener.Start( );

Bitmap bitmap = null;

using (TcpClient client = listener.Accept TcpClient())
{
Console.WriteLi ne("Server: Client Connected");

bitmap = AcceptBitmap(cl ient);

Console.WriteLi ne("Server: Received Bitmap: {0}x{1}", bitmap.Width,
bitmap.Height);
}

listener.Stop() ;
});

thread.IsBackgr ound = true;
thread.Start();

Console.WriteLi ne("Server: Server Started");
}
}
}
Nov 30 '06 #5
Hi Lenard,

I like your idea of saving the bitmap directly to the stream. I used a
BinaryFormatter in my example, but it seems unnecessary now :)

However, you shouldn't use the GetBuffer method since it might return the
stream + empty buffer bytes. Use ToArray() instead.

"MemoryStream.T oArray Method"
http://msdn2.microsoft.com/en-us/lib...m.toarray.aspx

--
Dave Sexton

"Lenard Gunda" <ms**@frenzy.hu wrote in message
news:%2******** ********@TK2MSF TNGP03.phx.gbl. ..
Hi,

I played a little with this problem, and came up with the following
solution.

For sending, you could use:

TcpListener listener = new TcpListener ( 9998 );
listener.Start ();
TcpClient client = listener.Accept TcpClient ();
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromFile ( @"..file.." );
using ( MemoryStream ms = new MemoryStream () )
{
image.Save ( ms, ImageFormat.Png );
byte[] imageBuffer = ms.GetBuffer ();
stream.Write ( imageBuffer, 0, (int)ms.Length );
}

stream.Close ( 500 );
client.Close ();
listener.Stop ();

Here you don't have to worry about the buffer, because MemoryStream will
handle it for you. For some reason you cannot use the NetworkStream
directly (to save the image into that). GDI+ throws an exception if you
try that. I guess it has something to do with network streams not being
searchable (but that is just a guess).

On the receiving end, you can however read directly from the
NetworkStream. So you could create a method like:

private Image ReceiveBitmap ()
{
TcpClient client = new TcpClient ();
client.Connect ( "127.0.0.1" , 9998 );
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromStrea m ( stream );

stream.Close ();
client.Close ();

return image;
}

This will read your image and return it to the caller. As you can see you
do not need to worry about the length of the buffer, because the image
loader will read the correct number of bytes.

Note however, that I did not do any error checking above.

Another way to solve the problem is to not send just the image onto the
network stream, rather first the size (say an Int32) and then the contents
of the buffer. On the receiving end you would then always read an Int32
(the length), allocate a buffer that fits the data, and then receive into
that buffer. That way you allocate just as much space as you need.

Hope this helps

-Lenard


el***********@g mail.com wrote:
>I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.

For reading, I am using a TcpClient and I call

NetworkStrea m ns = client.GetStrea m(); to get a stream

stream.Read(bu ffer, 0, buffer.Length);

now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?

MemoryStream ms = new MemoryStream(bu ffer);

Bitmap = new Bitmap(ms);

Does this seem like the correct way to send the Bitmap over my Socket?

I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.

Nov 30 '06 #6
Hi Dave,

My understanding is that ToArray() would create a copy of the buffer,
while GetBuffer() would return the buffer itself. For big buffers
(although they do get cleaned up by GC) I think this would waste memory.

While it is true that there might be unused space at the end, this is
the reason why I used the MemoryStream instance's Length property, and
not the length of the byte[] itself. This way the correct number of
bytes would be sent over the network.

-Lenard

Dave Sexton wrote:
Hi Lenard,

I like your idea of saving the bitmap directly to the stream. I used a
BinaryFormatter in my example, but it seems unnecessary now :)

However, you shouldn't use the GetBuffer method since it might return the
stream + empty buffer bytes. Use ToArray() instead.

"MemoryStream.T oArray Method"
http://msdn2.microsoft.com/en-us/lib...m.toarray.aspx
Nov 30 '06 #7
Hi Lenard,

I can see how that might be preferable.

--
Dave Sexton

"Lenard Gunda" <ms**@frenzy.hu wrote in message
news:%2******** *******@TK2MSFT NGP02.phx.gbl.. .
Hi Dave,

My understanding is that ToArray() would create a copy of the buffer,
while GetBuffer() would return the buffer itself. For big buffers
(although they do get cleaned up by GC) I think this would waste memory.

While it is true that there might be unused space at the end, this is the
reason why I used the MemoryStream instance's Length property, and not the
length of the byte[] itself. This way the correct number of bytes would be
sent over the network.

-Lenard

Dave Sexton wrote:
>Hi Lenard,

I like your idea of saving the bitmap directly to the stream. I used a
BinaryFormatte r in my example, but it seems unnecessary now :)

However, you shouldn't use the GetBuffer method since it might return the
stream + empty buffer bytes. Use ToArray() instead.

"MemoryStream. ToArray Method"
http://msdn2.microsoft.com/en-us/lib...m.toarray.aspx

Nov 30 '06 #8
Hi Lenarf,

Thanks for the quick response.

I am trying to get the ReceiveBitmap part working using your example. I
had a working solution and in mine, I replaced

byte[] buffer = new byte[1000000];
stream.Read(buf fer, 0, buffer.Length);
MemoryStream ms = new MemoryStream(bu ffer);
ShownWindow.Bac kgroundImage = Bitmap.FromStre am(ms);

with

ShownWindow.Bac kgroundImage = Bitmap.FromStre am(stream);

in order to cut out two middlemen, but then it stops working. Any idea
why?
Lenard Gunda wrote:
Hi,

I played a little with this problem, and came up with the following
solution.

For sending, you could use:

TcpListener listener = new TcpListener ( 9998 );
listener.Start ();
TcpClient client = listener.Accept TcpClient ();
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromFile ( @"..file.." );
using ( MemoryStream ms = new MemoryStream () )
{
image.Save ( ms, ImageFormat.Png );
byte[] imageBuffer = ms.GetBuffer ();
stream.Write ( imageBuffer, 0, (int)ms.Length );
}

stream.Close ( 500 );
client.Close ();
listener.Stop ();

Here you don't have to worry about the buffer, because MemoryStream will
handle it for you. For some reason you cannot use the NetworkStream
directly (to save the image into that). GDI+ throws an exception if you
try that. I guess it has something to do with network streams not being
searchable (but that is just a guess).

On the receiving end, you can however read directly from the
NetworkStream. So you could create a method like:

private Image ReceiveBitmap ()
{
TcpClient client = new TcpClient ();
client.Connect ( "127.0.0.1" , 9998 );
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromStrea m ( stream );

stream.Close ();
client.Close ();

return image;
}

This will read your image and return it to the caller. As you can see
you do not need to worry about the length of the buffer, because the
image loader will read the correct number of bytes.

Note however, that I did not do any error checking above.

Another way to solve the problem is to not send just the image onto the
network stream, rather first the size (say an Int32) and then the
contents of the buffer. On the receiving end you would then always read
an Int32 (the length), allocate a buffer that fits the data, and then
receive into that buffer. That way you allocate just as much space as
you need.

Hope this helps

-Lenard


el***********@g mail.com wrote:
I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.

For reading, I am using a TcpClient and I call

NetworkStream ns = client.GetStrea m(); to get a stream

stream.Read(buf fer, 0, buffer.Length);

now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?

MemoryStream ms = new MemoryStream(bu ffer);

Bitmap = new Bitmap(ms);

Does this seem like the correct way to send the Bitmap over my Socket?

I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.
Nov 30 '06 #9
Sorry, Lenard,

stream is a NetworkStream by the way

el***********@g mail.com wrote:
Hi Lenarf,

Thanks for the quick response.

I am trying to get the ReceiveBitmap part working using your example. I
had a working solution and in mine, I replaced

byte[] buffer = new byte[1000000];
stream.Read(buf fer, 0, buffer.Length);
MemoryStream ms = new MemoryStream(bu ffer);
ShownWindow.Bac kgroundImage = Bitmap.FromStre am(ms);

with

ShownWindow.Bac kgroundImage = Bitmap.FromStre am(stream);

in order to cut out two middlemen, but then it stops working. Any idea
why?
Lenard Gunda wrote:
Hi,

I played a little with this problem, and came up with the following
solution.

For sending, you could use:

TcpListener listener = new TcpListener ( 9998 );
listener.Start ();
TcpClient client = listener.Accept TcpClient ();
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromFile ( @"..file.." );
using ( MemoryStream ms = new MemoryStream () )
{
image.Save ( ms, ImageFormat.Png );
byte[] imageBuffer = ms.GetBuffer ();
stream.Write ( imageBuffer, 0, (int)ms.Length );
}

stream.Close ( 500 );
client.Close ();
listener.Stop ();

Here you don't have to worry about the buffer, because MemoryStream will
handle it for you. For some reason you cannot use the NetworkStream
directly (to save the image into that). GDI+ throws an exception if you
try that. I guess it has something to do with network streams not being
searchable (but that is just a guess).

On the receiving end, you can however read directly from the
NetworkStream. So you could create a method like:

private Image ReceiveBitmap ()
{
TcpClient client = new TcpClient ();
client.Connect ( "127.0.0.1" , 9998 );
NetworkStream stream = client.GetStrea m ();

Image image = Image.FromStrea m ( stream );

stream.Close ();
client.Close ();

return image;
}

This will read your image and return it to the caller. As you can see
you do not need to worry about the length of the buffer, because the
image loader will read the correct number of bytes.

Note however, that I did not do any error checking above.

Another way to solve the problem is to not send just the image onto the
network stream, rather first the size (say an Int32) and then the
contents of the buffer. On the receiving end you would then always read
an Int32 (the length), allocate a buffer that fits the data, and then
receive into that buffer. That way you allocate just as much space as
you need.

Hope this helps

-Lenard


el***********@g mail.com wrote:
I'm using TCP/IP to send a Bitmap object over Sockets. This is my first
time using C# at all so I don't know if this is the "right" way to do
it. I've already found out several times the way I was doing something
was really inefficient and could reduce 10 lines of code with 2, etc.
>
For reading, I am using a TcpClient and I call
>
NetworkStream ns = client.GetStrea m(); to get a stream
>
stream.Read(buf fer, 0, buffer.Length);
>
now already my question is, how do I make buffer so that I don't have
to arbitrarily make it 1 MB? What if my Bitmap is larger than 1 MB? Do
I need to read multiple times and then "join" the buffers? How would I
do that?
>
MemoryStream ms = new MemoryStream(bu ffer);
>
Bitmap = new Bitmap(ms);
>
Does this seem like the correct way to send the Bitmap over my Socket?
>
I also found that saving the Bitmap as a PNG before sending makes it
smaller. Is this a good idea, and can I compress it even more?
bm.Save(ms, System.Drawing. Imaging.ImageFo rmat.Png);
>
>
Thanks so much for reading a question from a newbie. I know this might
not make sense to some of you, or seem trivial.
>
Nov 30 '06 #10

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

Similar topics

1
2904
by: Amadej | last post by:
Hello everyone, I'm having some odd problems with a little program I wrote for sending/receiving bytes across the network. I am using synchronous sockets, and it seems that when I send byte after byte too fast, the packet gets lots somewhere (as odd as that sounds). Here's the sending code:
1
7845
by: Steve | last post by:
Please take a look at the simple code segment below and advise me what is wrong. According to the help and examples I've seen it should work unless I misunderstand something. The problem is that UdpClient.Receive method always throws following exception, even though I verified that message was successfuly received by devices and responses were sent back:
0
3024
by: Gregory Hassett | last post by:
Hello, I want to periodically send a TCP packet to a peer, always from the same source port. That is, each packet will come from my local ip address, port 8801, and go to the peer's ip address, to HIS port 8801. This means that I need to bind my sender socket to (myaddress,8801), use it for the send, then shut it down and close it. Then I want to wait, say 30 seconds, and do it all over again. Naturally, the socket's ReuseAddress...
6
2530
by: Jaret Brower | last post by:
When I do a Socket.Send(byte) from a client, how do I know that I've reached the end of this data on the server? I've tried sending the length(4 bytes) at the beginning of the byte but I can't seem to read this correctly (I always get a negative number). I'm basically trying to take an Image from a picture box, I save it to a MemoryStream and then send it off, but i need to know how much to read before i construct the buffer on the server...
1
1842
by: Matt | last post by:
We have an Intermec stationary computers setup to basically clock people in and out... I have code running (borrowed from Planet Source Code and modified to suit) to receive packets from these computers each time someone swipes their card. The code sends back a response to the device with basically a clocked in/out successful/unsucessful message. This works good, but the code will only send a message to the device if it receives a...
11
7721
by: hazz | last post by:
smtpClient.Send(message) is causing me problems as per specifics in the trace below. Email is sent but not without this error typically upon sending the second email, but sometimes when running the app, even the first time. The application will be required to be sending out repeated emails, about one every second or two. Must this be done asynchronously? Thank you. -Greg I get the generic error messages;
3
2666
by: growse | last post by:
Right, I've got a 2 c# programs here. Lets call them A and B. My aim is to send a simple string from B to A. A is always running. I've overridden the WndProc method to give me messages that are sent to it. B is a program that loads, sends a message and then quits. Let me give you the code to B (bits are missed out, but I've got the important stuff there): private const uint WM_USER_SENDTEXT = 0x8001;
3
4309
by: BuddyWork | last post by:
Hello, Could someone please explain why the Socket.Send is slow to send to the same process it sending from. Eg. Process1 calls Socket.Send which sends to the same IP address and port, the receiver is running within Process1. If I move the receiver into Process2 then its fast. Please can someone explain.
0
3167
by: Buddy Home | last post by:
There is two examples of code. Example 1. Send and Receive within the same process. Put this code in a console app called SendAndReceive and run the code. using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Runtime.Serialization.Formatters.Binary;
0
8752
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
9257
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9113
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
8097
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, and deployment—without 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...
0
4519
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
4784
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3221
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
2
2635
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2157
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.