|
As CPallini said, you don't need to fiddle with fragmentation. You just need to Send and Recv, fragmentation is done by the TCP/IP layer, also it ensures you that you get your data in the same order you sent it, so don't worry about "puttinng your fragments together in the right order" on any side.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> Life: great graphics, but the gameplay sux. <
|
|
|
|
|
Thanks for reply.
This problem started from live system at customer side.Sender application is sending 1800 bytes on socket but reciever side is receiving only 1460 bytes.Then one of my senior colleague asked me that it MTU problem so we need to change our implemataion.
|
|
|
|
|
Vishal Kumar Soni wrote: Then one of my senior colleague asked me that it MTU problem so we need to change our implemataion
Hi Vishal,
I have read the other responses and mostly agree with them for 99.9% of engineers. However there are valid reasons why some network engineers choose to enable a Large MTU Network[^]. By reducing SYN/ACK cross-talk you can significantly reduces network overhead and consequently increase network throughput. There are essentially two ways to improve TCP performance... one is by increasing the MTU and the other is enabling RFC-1323[^] known as the TCP window scale option.[^]
The answer to your question is that the MTU is generally "Auto-Discovered[^]" by default. You can disable this option and enforce a specific maximum transmission packet-size, however... if there is ONE router which cannot handle the oversized packet, it will send back an ICMP error message and cause the packet to resent in smaller chunks... this is known as packet fragmentation and is very harmful for throughput.
Best Wishes,
-David Delaune
|
|
|
|
|
Hi David,
Thanks for information.
According to previous discussion, we can send more then 1500 bytes over TCP/IP socket connection without caring the MTU size.At application level we don't need to implement fragmenation and defragmentaion.
So I can continue with this?
Regards,
Vishal Soni
|
|
|
|
|
Vishal Kumar Soni wrote:
we can send more then 1500 bytes over TCP/IP socket connection without caring the MTU size.At application level we don't need to implement fragmenation and defragmentaion.
So I can continue with this?
Yes, the application level should generally be designed to fuction with disregard to packet size.
Best Wishes,
-David Delaune
|
|
|
|
|
Thanks David!
Regards,
Vishal
|
|
|
|
|
An update to this problem.
As we discussed in this thread that if we send data more then MTU size then it is supposed to handle by TCP/IP protocol.At application level,we don't need to anything.
I think lot of things depends upon network adapter setting.
So I tried to find out that why it is not working on two m/c where both client and server applications are running.Both m/c having windows 2003 server and having broadcom network adapter.
In broadcom network adapter there is proprty "LSO & Jumbo frame off". By default this property has value "LSO enabled and jumbo frame off". By changing this property to "LSO disabled & jumbo frame 3000",applications are able to send/receive the data more then 1500 bytes. but some times it is still failing.Sometimes it is able to send/receive ony 536 bytes.
Could you please tell the reason?
Thanks and Regards,
Vishal Soni
|
|
|
|
|
I have displayed a messagebox with MB_RTLREADING flag.
The string that i tried to display is some thing like: "Name(First Name)"
However I am getting the display of "(Name ( First Name"
The syntex used for the messagebox was as follows:
MessageBox(NULL,"Name (FULL NAME)","good",MB_RTLREADING );
Please suggest what setting i am missing?
|
|
|
|
|
Possibly you're missing this part of the documentation [^]
MB_RTLREADING
Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi
It is treating closing bracket as the line terminatior.
This can be understood by this example.
Source string: Name (First Name).
Displayed in the RTLREADING: .(Name (First Name
However
Source string: Name (First Name) is Ok.
Displayed in the RTLREADING: .Name (First Name) is OK
What i want is
Source string: Name (First Name).
Displayed in the RTLREADING: .(ame (First Name)
I need suggestion for displayed text in the above stated format.
|
|
|
|
|
piyush kumar tewari wrote: I have displayed a messagebox with MB_RTLREADING flag.
Which is not the same as having right-justified text.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
If you mean to say that the MB_RTLREADING is not the appropriate flag to use, then what can be the other options to try in this situation?
|
|
|
|
|
How about MB_RIGHT ?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
i have converted my VS2005 project into VS2008 and trying to use the CMFCOutlookBar.
but the application crashes while adding the tabs.
on the contrary, if i create a new VS2008 project and use CMFCOutlookBar, everything seem to work fine.
do i have to do any changes in my converted project in order to make the outlookbar work?
thanks
|
|
|
|
|
|
Hi all,
i am developing an application to control an I/O card, read data from a serial port.
i am new to these field of programming.
i am using VC++ as my development language.
can i get some help on articles or ebooks or sample programs for doing the same??
|
|
|
|
|
Subrat Patnaik wrote: i am developing an application to control an I/O card, read data from a serial port.
Does the above mean: "my I/O card reder device is connected to the PC serial port"?
What are you doubts about?
Are you able to use the serial port API, aren't you (see, for instance [^])?
Have you the documentation of the device?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
How about this CP article[^] about programming the serial port?
It's not so difficult - the main difficulty is being sure that the remote end is doing/expecting what you are expecting/doing.
|
|
|
|
|
Have a look here[^].
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Hi,
I am using new MFC Feature pack and trying to create 4 DockablePanes in the child frame. A view is created in each of these dockable panes.When I run the application, only two of the panes (the first and the last one) are only shown and the remaining are hidden. Once I drag the splitters, they are seen and they function normally from then.I am unable to trace the problem. Is there any limit on the number of dockable panes that an application can have? Could anyone let me know as how to solve this problem so that I can view all the panes?
Thanks in advance
Taruni
|
|
|
|
|
I think there is no number limitation. I once created an application with 5 docking panes in the main frame, and with additional 6 panes for each new popup child frame. (exactly like MSOutlook when you open many windows for composing new messages).
Actually you have to check your code in CMainFrame::OnCreate member when you must have set the docking mode, autohide, docking side globally and must have called the ::EnableDocking and ::DockPane for each pane object.
Also check to clean up the registry entry corresponding to your application. Those panes persist their behavior in the registry, and restore the past settings even if you change your source code and run the new version of the program.
|
|
|
|
|
Thank you. I am able to create multiple dockablepanes in the childframe, but I have one more problem. There are four dockable panes in my childframe and the splitter for only the last dockable pane is only seen. When I double click or adjust the last pane's splitter or click on the "Auto Hide" button of any of the dockable panes or close any of the dockable panes, then only all the other panes splitters are seen. Please let me know as how to make the splitters of all the panes visible as soon as run my application.
Taruni
|
|
|
|
|
My code has russian comments in it but they appear unintelligible, like this:
#define DEMO //УРґЛєк¶ЁТе±нКѕУРЧўІб№¦ДЬµД°ж±ѕЈ¬·сФтОЮ
I tried fiddling with the fonts but it didn't work. btw it's possible they're written with the MS-DOS cyrillic charset.
There is sufficient light for those who desire to see, and there is sufficient darkness for those of a contrary disposition.
Blaise Pascal
|
|
|
|
|
Have you tried this after setting Russian in the "Regional Options" and "Advanced" tabs of "Regional and Language Options" in the Control Panel!
|
|
|
|
|
i tried it but still no luck. actually i changed the option under the 'Advanced' tab (lang for non-unicode programs), the regional options tab was for dates, times, currencies etc.
There is sufficient light for those who desire to see, and there is sufficient darkness for those of a contrary disposition.
Blaise Pascal
|
|
|
|