Search Results

Search found 33182 results on 1328 pages for 'linux port'.

Page 693/1328 | < Previous Page | 689 690 691 692 693 694 695 696 697 698 699 700  | Next Page >

  • mysql error code 13 on windows xampp caused by lower case table names = 0

    - by user127379
    I can import an sql (from test linux server mysql) file if the lower case setting is removed. But then the table names are lower case and the web site doesn't work. Originally it was working (my.ini with the lower case settings), I then exported to a linux server, it was working there. Now importing back to my windows (xampp setup) fails. After wild goose chase looking at disks and permissions, I found that if I remove the lower_case_table_names=0, the import works! But I need the case sensitive command so that I can deploy on the linux server.

    Read the article

  • Multicasting and VMWare

    - by John Breakwell
    Cracked a Multicasting problem this evening for one of my Canadian Tweeple. They wanted to mulitcast some MSMQ messages to another machine but nothing was arriving in the listening queue. A local queue could be configured to listen to the particular IP address/port in use and messages would arrive, though. Looking at the network traffic, nothing was going onto the wire for the IP address/port pair until they looked at traffic to the VMWare adapter. The machine had a virtual machine to simulate a remote computer and when they changed the setup from NAT to Bridge, multicasting burst into life.

    Read the article

  • IDC Recommends Oracle Solaris 11

    - by user12611852
    IDC published a research report this week on Oracle Solaris 11 and described it as "Delivering unique value."  The report emphasizes the ability of Oracle Solaris to scale up and provide a mission critical platform for a wide variety of computing. Solaris built-in server and network virtualization helps to lower costs and enable consolidation while reducing administration costs and risks. Learn more about Oracle Solaris and the recently announced 11.1 update. In their conclusion, IDC reports: Today, Oracle is a multi-OS vendor that is adjusting to the opportunities presented by a significantly expanded product portfolio. The company has a long history of supporting Unix operating systems with its broad product portfolio, but the main difference is that now Oracle has direct control over the destiny of the Solaris operating system. The company has made a strong commitment to Solaris on both SPARC and x86 systems, as well as to Linux on x86 systems, and expects to continue to enhance Oracle Solaris 11 with update releases once a year as well as Solaris 12, which is already on the road map. Oracle is working to help its customers understand its strong commitment to Oracle Solaris and the product's role as a single operating system that runs on both SPARC and x86 processors. While Oracle Solaris and Oracle Linux are critical assets, the company's crown jewel is the deep collection of software that runs on top of both Oracle Solaris and Oracle Linux, software that creates a robust application environment. The continuing integration and optimization of the software and hardware stack is a differentiator for Oracle and for customers that run an Oracle Solaris stack.

    Read the article

  • DVC101 Video Capture Device on USB hub - Ubuntu Server 12.04

    - by John
    I have a Dell Inspiron 8600 laptop I use as a media server/video capture system. It only has 2 USB ports and I have a total of 3 devices I need to connect. The DVC101 works perfectly while plugged directly into the USB port in back of the laptop. Unfortunately it does not get recognized when plugged into a passive or powered USB hub. Questions: Is there something I am missing on the Ubuntu side? Something I need to do that will allow the device to be recognized through the hub? If not, will the extra USB ports on a dell laptop dock (port replicator) act the same as the aftermarket hubs? I know this one is off topic of Ubuntu but any input appreciated.

    Read the article

  • How to setup VPN as Proxy

    - by Nicolas Nox
    I have an PerfectPrivacy VPN connected via the OpenVPN-Network-Manger-Plugin (Ubuntu 12.04.1) and I want to assign a system wide proxy over that VPN. I have tried proxydriver that should do that automatically, but it works partially. The browser says that I have the IP of the VPN, but when I tried to send an eMail over SMTP (Port 25), I can´t connect to the mail server. In our company the smtp server port is closed, but that should be not a problem, when I do that over a VPN, shouldn´t it? greetings

    Read the article

  • Ubuntu 12.10 won't display properly after kernel upgrade

    - by Daniel
    After updating a system today, Ubuntu's doesn't display correctly. The desktop now looks like this. It was working properly before. I had to use the terminal to run synaptic package manager, so I could view the update history; which is as follows: Commit Log for Wed Nov 7 11:50:36 2012 Upgraded the following packages: linux-image-generic (3.5.0.17.19) to 3.5.0.18.21 Installed the following packages: linux-image-3.5.0-18-generic (3.5.0-18.29) linux-image-extra-3.5.0-18-generic (3.5.0-18.29) Prior to this issue, the last active driver was nvidia-current-updates, version 304.51. I tried using the nvidia-current driver, version 304.51.really.304.43 instead, but the problem persists. I tried running nvidia-settings from terminal, so I could try configuring something, but the application informs that the Nvidia driver is not being used. As the x-swat repository has nothing for Quantal, I desperately used the unstable x-edgers repository & upgraded, but to no avail; so I purged it. The display should normally be full HD, but the only available resolutions now are 1024x768(4:3) and 800x600(4:3). The system is Dell XPS-L702X, with NVIDIA GeForce GT 555M, and 17" screen. How can I fix this problem? Update: I tried using the Nouveau third-party driver & this fixes the issue. However, if you have any idea how to get the Nvidia drivers working properly with the latest kernel, please share; as I've noticed some videos playing very slowly on the system, though I'm not sure exactly why.

    Read the article

  • Ubuntu installed along side Win 8 but not shown in boot

    - by Mahesha999
    Actually the question says it all, but let me tell you what I did, so u may find exactly what might have went wrong: I have Win 8 installed on 500 GB HDD. SO I shrunk it four times for: partition 1 - the original partition containing Win 8 sys (118GB) partition 2 - NTFS formatted for my data (188GB) partition 3 - NTFS formatted for my data (100GB) partition 4 - NTFS formatted for Linux distro 1 (I reformatted it to ext4 during Ubuntu installation) (25GB) partition 5 - NTFS formatted for Linux distro 1 (21GB) So now I booted Ubuntu from USB (created from ubuntu-12.04-desktop-amd64.iso) and deleted last two partitions 4 and 5 to create: partition 1 - ext4 where I installed Ubuntu (25GB) partition 2 - Swap (4GB) partition 3 - unallocated space, not formatted yet (17GB) Ubuntu installation said it installed successfully and that I have to restart to boot in Ubuntu. But when I restart Windows 8 auto booted - there was no dual boot. After that I devided above 100GB partition to 80Gb and 20GB ones (since I read online that I should have /home in separate partition for convenience, so I created 20GB partition for it) So I went on to manually create boot entry using EasyBCD as below show in picture at below link http://s19.postimage.org/dof2zuvw3/Free_BCD.png When I created the entry, FreeBCD showed the information as follows: Windows Boot Manager -------------------- identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795} device partition=\Device\HarddiskVolume2 description Windows Boot Manager locale en-US inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e} integrityservices Enable default {ea8167ad-d189-11e1-90e4-ab2f09569dcc} resumeobject {ea8167a3-d189-11e1-90e4-ab2f09569dcc} displayorder {ea8167ad-d189-11e1-90e4-ab2f09569dcc} {ea8167b1-d189-11e1-90e4-ab2f09569dcc} toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d} timeout 10 displaybootmenu Yes Windows Boot Loader ------------------- identifier {ea8167ad-d189-11e1-90e4-ab2f09569dcc} device partition=C: path \Windows\system32\winload.exe description Windows 8 locale en-US osdevice partition=C: systemroot \Windows resumeobject {9bc7fdf7-3ae0-11e2-be77-806e6f6e6963} Real-mode Boot Sector --------------------- identifier {ea8167b1-d189-11e1-90e4-ab2f09569dcc} device partition=C: path \NST\AutoNeoGrub0.mbr description Ubuntu Notice the last bolded entry created. Howevever after thet, when I rebooted it firstly showed old DOS like bootloader (no Windows 8 UI based bootloader) with two entries Windows and Ubuntu. Windows 8 was booting correctly but I was getting an error while booting Ubuntu taking me to GRUB Rescue. Please help am new to Linux world.

    Read the article

  • How to start vnc server on-demand (not on boot)

    - by QRohlf
    I have a vps which has the basic xfce environment & tightvncserver installed. I would like to have tightvncserver automatically start whenever I initiate a connection to the port it runs on (in my case, 5901). I've seen posts about using inetd or xinetd to do this, but I've also seen lots of posts saying that (x)inetd is not included in Ubuntu for a reason, and that it's a bad idea to use it. Anyways, I'm looking for a way to auto-start tightvncserver whenever there's an incoming connection to port 5901, preferably with as few dependencies as possible

    Read the article

  • USB-keyboard & mouse powered off in windows-7

    - by sinned
    I have a problem with a pc where usb devices are not getting any power as soon as windows starts up (it works in preboot). This pc has no ps/2, so there is no chance for input, also not in secure boot mode. I "tidied up" using sysinternals autostart, so there is a chance I messed something up here, although I'm quite sure I only deleted some old printer drivers from autostart. I do not know how to reset this, I cant even log in because there is no input possible. I could use a linux live cd, but I don't know what to do there because there is no sysinternals from linux into a not running windows... To make things even worse, I have the windows installation completely encrypted with truecrypt, so I haven't even tried windows recovery cd yet. There is no loss of data since I can access the disc with a live-linux, I only want to use it again without resetting up everything. Any suggestions?

    Read the article

  • Simple Hierarchical Clustering Implementations for C#?

    - by Joshua Smith
    I need a C# library that can do hierarchical single/complete link clustering. It's for a BSc final year project and I can't find any free implementations. I'd be happy to port a small(ish) Java project to C#, but most of the Java implementations are contained within huge libraries that have 30+ algorithms. The problem with large libraries is that one has to port 50% of the entire library due to dependency fanout. I'd be extremely grateful if anyone knows of any free single/complete link clustering implementations for C# or a small Java implementation of either! By the way, as I am a student, it may be possible to ask for an academic/research license from commercial companies.

    Read the article

  • Burn iTunes playlist to Audio Image

    - by MikeHoss
    I have Snow Leopard on an early model MacBook Pro. The CD Drive has been giving me fits the last few months -- I stick a blank CD in it, and it claims it's bad and spits it out. I can go through a pile of brand-new CD's and it will choose 1 out of 7 that it wants to use, even though all the CD's come from the same package. The rejected CD's work fine on a Linux machine I have. I need to burn an audio CD from iTunes and my thought was: Burn playlist to audio CD Image file (Red Book image?) Copy ISO file to Linux Machine Use Linux machine to burn audio image to a CD But looking around, it doesn't seem that iTunes on OSX will support this. I was wondering if anyone else has accomplished this.

    Read the article

  • Why won't my graphics work in Ubuntu 12.04 LTS?

    - by user170974
    I'm very new to Ubuntu and to Linux in general, and took the leap and formatted my PC to Ubuntu 12.04 LTS very recently :) I seem to be having some trouble getting my graphics card to run properly, I looked over what information I could find but I still cannot get it up and running and figured this was a good place to ask for help. The information I can find on my graphics is as follows: (Terminal command) lspci outputs: 01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880M [Mobility Radeon HD 4225/4250] 02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] I tried using a mixture of the following links: How do I fix my installation of ATI Catalyst Video Driver in 12.04 LTS? What is the correct way to install ATI Catalyst Video Drivers (fglrx)? Ubuntu Precise Installation Guide But it does not seem to work, since running fglrxinfo in terminal gives: display: :0.0 screen: 0 OpenGL vendor string: VMware, Inc. OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x301) OpenGL version string: 1.4 (2.1 Mesa 9.0.3) What am I doing wrong here? All help appreciated ;) Edit: I have tried the legacy driver from www2.ati.com/drivers/linux/amd-driver-installer-catalyst-13-4-linux-x86.x86_64.zip I also tried the guide at https://launchpad.net/~makson96/+archive/fglrx which caused the system to crash (blackscreen, no boot) Neither seemed to work. I did however reinstall ubuntu 12.04 LTS, and re-tried both with no success. Reintalling ubuntu did however fix the broken dependencies problems, etc.

    Read the article

  • Impossible quandrary involving UCK, graphics card, and Nvidia drivers

    - by InkBlend
    I have a computer that I want to install Ubuntu on. It is an older gaming computer with a Nvidia graphics card. When I attempt to boot any unmodified Linux distribution onto it, I get a "Boot error" message, which I assume is because the computer uses a discrete graphics card, which the Linux kernel does not have support for. Ordinarily, that would not be a problem, as I would just plug the monitor into the VGA port built in to the motherboard. However, this particular model of motherboard does not have an on-board graphics connector, so I am stuck with using the graphics card connection. That further would not be a problem; all I would have to do would be to use UCK to create a customized Ubuntu image that included the graphics drivers. Except for the fact that the Nvidia Linux drivers must be installed on a computer with a Nvidia graphics card present. So while using UCK, the driver installer fails with a message stating that there is no Nvidia graphics card present. How do I get Ubuntu on my desktop computer?

    Read the article

  • In Opera 11, how can I set up shortcuts to switch to specific tabs?

    - by gphilip
    In Firefox on Linux, we can use Alt+1, Alt+2, etc. to switch to the first, second, etc. tabs, till the 9th tab. This is very useful to switch between tabs. In Opera 11 on Linux, I couldn't find a way to do this: the only way to switch among tabs seems to be to use Ctrl+Tab and then cycle till we reach the tab that we want. Needless to say, this "linear access" method is slower (and more annoying) than the random access available in FF. So my question is: How can I set up shortcuts in Opera 11 on Linux so that I can switch to one of the first nine tabs using a numbered shortcut?

    Read the article

  • What postgresql client version should I build against, if server is 8.x?

    - by Ben Voigt
    I'm planning updates to a system that is currently running with 8.x server on Windows, 8.x client on Windows, and 8.x client on Linux. Obviously that seems like a bad choice of platform in a mixed environment, but the Linux machine has no persistent writable storage (as an anti-rootkit measure). I'm concerned with compatibility between versions right now. Can a linux postgresql 9.0.x client connect to a Windows 8.x server? The server is using some third-party binary extensions, so upgrading it is a more involved task and will be done later. If combining a 9.0.x client and 8.x server is discouraged, would latest 8.x clients be able to continue to connect if I did upgrade the server first? META: What tag is appropriate for backward-compatibility questions?

    Read the article

  • How to enable a Web portal-based rich enterprise platform on different domains and hosts using JS without customization/ server configuration

    - by S.Jalali
    Our company Coscend has built a Web portal-based communications and cloud collaboration platform by using JavaScript (JS), which is embedded in HTML5 and formatted with CSS3. Other technologies used in the core code include Flash, Flex, PostgreSQL and MySQL. Our team would like to host this platform on five different Windows and Linux environments that run different types of Web servers such as IIS and Apache. Technical challenge: Each of these Windows and Linux servers have a different host name and domain name (and IP address), but we would like to keep our enterprise platform independent of host server configuration. Possible approach to solution: We think an API (interface module with a GUI) is needed to accomplish this level of modularity and flexibility while deploying at our enterprise customers. Seeking your insights: In this context, our team would appreciate your guidance on: Is there an algorithmic method to implement this Web portal-based platform in these Windows and Linux environments while separating it from server configuration, i.e., customizing the host name, domain name and IP address for each individual instance? For example, would it be suitable to create some JS variables / objects for host name and domain name and call them in the different implementations? If a reference to the host/domain names occurs on hundreds of portal modules, these variables or JS objects would replace that. If so, what is the best way to make these object modules written in JS portable and re-usable across different environments and instances for enterprise customers? Here is an example of the implemented code for the said platform. The following Web site (www.CoscendCommunications.com) was built using this enterprise collaboration platform and has the base code examples of the platform. This Web site is domain-specific. We like to make the underlying platform such that it is domain and host-independent. This will allow the underlying platform to be deployed in multiple instances of our enterprise customers.

    Read the article

  • To same computer Remote desktop thrue WRT54G router

    - by Kangarooo
    Can't access from my Same comp to same comp to test if all is ok. Tried all mentioned posibilities. Tryd my ip xxx.xxx.xxx.xxx / localhost with / without :5900 added with / without in "Remote desktop" checked "Configure network automatically to accept connection" with / without in router WRT54G enabled port 5900 forwardet to my comp 192.168.1.3 UPNP is enabled. I can connect to one other comp whitch isn't using router and checked "Configure network automatically to accept connection" and to one through TENDA W311R+ router where i've put port forwarding to 5900 and there works xxx.xxx.xxx.xxx:5900 What's wrong? What have i missed?

    Read the article

  • Second monitor not coming back on after going into hibernate

    - by dabraude
    10 and a new problem has come up. When I my machine hibernates the second monitor does not come back on. I did not have this problem in 11.04. The main monitor is plugged into a vga port, and the second plugged into a display port then an adapter to vga the system is a Dell Optiplex 790 and the graphics card is (according to lspci) a VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) I am running the classic Gnome desktop though the problem occurs in Unity as well.

    Read the article

  • Forcing rsync to convert file names to lower case

    - by SvrGuy
    We are using rsync to transfer some (millions) files from a Windows (NTFS/CYGWIN) server to a Linux (RHEL) server. We would like to force all file and directory names on the linux box to be lower case. Is there a way to make rsync automagically convert all file and directory names to lower case? For example, lets say the source file system had a file named: /foo/BAR.gziP Rsync would create (on the destination system) /foo/bar.gzip Obviously, with NTFS being a case insensitive file system there can not be any conflicts... Failing the availability of an rsync option, is there an enhanced build or some other way to achieve this effect? Perhaps a mount option on CYGWIN? Perhaps a similar mount option on Linux? Its RHEL, in case that matters.

    Read the article

  • Adding a 'network' USB printer

    - by AndrewK
    I have a HP Deskjet 1050a printer, hence the 'network' in the title. Its a bog standard USB home printer. I have it attached to my router (has a USB port in it). I have got it connected and working to with Win8 PC and also a MacBook Air. Can't seem to get it to add as a printer to my Xubuntu laptop(s). It doesn't get detected automatically (not an actual network printer) and i've tried multiple options to get it working. It seems to add it but when printing a test page its saying the printer isn't connected. Ping works fine so it can see it, just can't add it as a printer. With Win8 I had to create a port with the IP of the printer (192.168.1.253 in this case), is there an Ubuntu alternative to do this?

    Read the article

  • Dual Boot Windows 8 and Ubuntu

    - by Nick
    My laptop has two hard drives, one 320GB HDD and a 30GB SSD. I installed Windows 8 on the HDD and Ubuntu on the SSD. However, after I installed Ubuntu, Windows 8 did not appear on the boot list. I tried boot-repair, but this didn't help.Here is the output of my fdisk -l: Disk /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6cd9314a Device Boot Start End Blocks Id System /dev/sda1 * 2048 625139711 312568832 7 HPFS/NTFS/exFAT Disk /dev/sdb: 30.0 GB, 30016659456 bytes 255 heads, 63 sectors/track, 3649 cylinders, total 58626288 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6cd93132 Device Boot Start End Blocks Id System /dev/sdb1 * 2048 207126 102539+ 83 Linux /dev/sdb2 208894 58626047 29208577 5 Extended /dev/sdb5 208896 4112383 1951744 82 Linux swap / Solaris /dev/sdb6 4114432 58626047 27255808 83 Linux Disk /dev/mmcblk0: 3965 MB, 3965190144 bytes 49 heads, 48 sectors/track, 3292 cylinders, total 7744512 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009c694 Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 8192 7744511 3868160 b W95 FAT32 I also tried sudo grub-update, but that also did nothing.

    Read the article

  • Random compositing lag

    - by user1020567
    My laptop specs: 512 mb of RAM, out of which 64 mb are shared with an integrated GPU - ATI Radeon Xpress 200 M. Intel 1,6 Ghz Celeron M single-core processor. I've spent months trying to figure out why compositing and effects sometimes lag on any distro I try. Now I've come to realise that no matter what drivers I try (the default ones work for me on pretty much any linux) compositing lag is random. When I used Ubuntu 10.10, for example, sometimes window compositing would lag and sometimes it wouldn't. The PC is able to render those effects so hardware is not the problem. It's completely random and unpredictable - sometimes when I turn on the computer the effects lag horribly and sometimes it's completely smooth. I've also checked startup items and there doesn't seem to be any unnecessary entries. I also tried building my own OS with Arch Linux and the problem persists there, therefore I can only assume that it's a driver issue of some sort. By default there are lots of drivers supplied with linux distributions. Could it be that they're in the way? The ones that I need are ati/radeon (or both? What's the difference between them?) and there seem to be a lot of others... What should I do?

    Read the article

  • Creating ISO image of NTFS partition in Ubuntu

    - by Pappai
    Hi, I have a system that has to be formatted often because of the specific use of it (Use it in internet cafe). I have to install the drivers and apps each time. That is a time consuming and cumbersom task for me. I want to install windows, drivers, apps etc. once and create a backup of the entire C:\ drive, and keep it in a linux partition so that I can restore the OS with all the apps & drivers ready to go! I have ubuntu live CD with me and I have created a linux partition (ext4) in the HDD. My question is: How can I create an ISO image of the C:\ drive (ntfs disk) in Ubuntu and store it in the linux partition?

    Read the article

  • loss of sound in ubuntu 12.04

    - by Leo Simon
    I'm running Linux E6520 3.2.0-56-generic #86-Ubuntu SMP Wed Oct 23 09:20:45 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux on a Dell Latitude E6530. (This is a new machine; have run the same version of linux on an older machine for a year, without this happening.) I've been losing sound regularly, though have not been able to isolate the trigger for this. I've scoured the web on this subject, in particular https://help.ubuntu.com/community/SoundTroubleshootingProcedure and Audio stopped working suddenly in 12.04 Nothing from the first site seemed to work for me. From the second site, I learned enough to be able to fix the problem when it happens, but nothing on the web has helped me figure out why the problem is happening in the first place. Patching together stuff from the web, and with some blind luck, I've found that the following steps seem to restore sound pulseaudio --kill pulseaudio --start pavucontrol -> output devices Click on the "Mute audio" icon, which mutes audio Click on the "Mute audio" icon, which unmutes audio. This obviously doesn't make sense: audio wasn't muted in the first place, but somehow, magically, toggling mute audio off and on seems to reset something. Can anybody suggest from this information why sound would be disappearing in the first place (it seems as though something is getting muted at the system level, but I don't know what)? a simpler (command-line/script) way of restoring sound, in particular, is it possible to reset pavucontrol from the commandline? Some other pieces of information that may be of use: The problem is clearly happening at the system level, since I've set up a clean new user, and this user has the same problems that I do. So user fixes like deleting the .pulse directory aren't (and don't) help. Sound works fine in Windows (dual-boot) so it's not a hardware problem Any help/suggestions on this would be most appreciated.

    Read the article

  • I was stuck in implementing Simple Ftp with Winsock [migrated]

    - by user67449
    I want to implement a SimpleFtp with Winsock. But I was stuck in the maybe the file stream reading and writing. This is the Server. #include <WinSock2.h> #include <memory.h> #include <stdio.h> #include <iostream> using namespace std; #pragma comment(lib, "ws2_32.lib") #define MAX_FILE_NAME 100 #define DATA_PACK_SIZE 80*1000 // ??DataPack?????80KB #define SOCKKET_BUFFER_SIZE 80*1000 // socket??? #define FILE_BUFFER_SIZE DATA_PACK_SIZE-MAX_FILE_NAME-4*sizeof(int)-sizeof(u_long) //?????,??,??????content????? #define CONTENT_SIZE FILE_BUFFER_SIZE // DataPack?????content??? // Define a structure to hold the content of a file typedef struct FilePack{ char fName[MAX_FILE_NAME]; // File's name int fLen; // File's length int packNum; // Number of the DataPack int packLen; // DataPack's length int packCount; int contenLen; // the content length the DataPack actually holds u_long index; // ?????????? char content[CONTENT_SIZE]; // DataPack?????? }DataPack, *pDataPack; void WinsockInitial(){ WSADATA wsaData; WORD wVersionRequested; int err; wVersionRequested=MAKEWORD(2,2); err=WSAStartup(wVersionRequested, &wsaData); if(err!=0){ cout<<"Error at WSAStartup()."<<endl; exit(0); } if( LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2 ){ cout<<"Error at version of Winsock. "<<endl; WSACleanup(); exit(0); } } void SockBind(SOCKET sock, int port, sockaddr_in &addrsock){ addrsock.sin_family=AF_INET; addrsock.sin_port=htons(port); addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY); if( bind(sock, (sockaddr*)&addrsock, sizeof(addrsock)) == SOCKET_ERROR ){ cout<<"Error at bind(). Error: "<<GetLastError()<<endl; closesocket(sock); WSACleanup(); exit(0); } } void SockListen(SOCKET sock, int bak){ int err=listen(sock, bak); if(err==SOCKET_ERROR){ cout<<"Error at listen()."<<WSAGetLastError()<<endl; closesocket(sock); WSACleanup(); exit(0); } } int SockSend(DataPack &dataPack, SOCKET sock, char *sockBuf){ int bytesLeft=0, bytesSend=0; int idx=0; bytesLeft=sizeof(dataPack); // ?DataPack?????sockBuf??? memcpy(sockBuf, &dataPack, sizeof(dataPack)); while(bytesLeft>0){ bytesSend=send(sock, &sockBuf[idx], bytesLeft, 0); if(bytesSend==SOCKET_ERROR){ cout<<"Error at send()."<<endl; return 1; } bytesLeft-=bytesSend; idx+=bytesSend; } return 0; } int GetFileLen(FILE *fp){ // ?????? if(fp==NULL){ cout<<"Invalid argument. Error at GetFileLen()."<<endl; exit(0); } fseek(fp, 0, SEEK_END); int tempFileLen=ftell(fp); fseek(fp, 0, SEEK_SET); return tempFileLen; } int main(){ int err; sockaddr_in addrServ; int port=8000; // Initialize Winsock WinsockInitial(); // Create a socket SOCKET sockListen=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sockListen==INVALID_SOCKET){ cout<<"Error at socket()."<<endl; WSACleanup(); return 1; } // Bind the socket. SockBind(sockListen, port, addrServ); // Listen for incoming connection requests cout<<"Waiting for incoming connection requests..."<<endl; SockListen(sockListen, 5); // Accept the connection request. sockaddr_in addrClient; int len=sizeof(addrClient); SOCKET sockConn=accept(sockListen, (sockaddr*)&addrClient, &len); if(sockConn!=INVALID_SOCKET){ cout<<"Connected to client successfully."<<endl; } // Set the buffer size of socket char sockBuf[SOCKKET_BUFFER_SIZE]; int nBuf=SOCKKET_BUFFER_SIZE; int nBufLen=sizeof(nBuf); err=setsockopt(sockConn, SOL_SOCKET, SO_SNDBUF, (char*)&nBuf, nBufLen); if(err!=0){ cout<<"Error at setsockopt(). Failed to set buffer size for socket."<<endl; exit(0); } //??????????? err = getsockopt(sockConn, SOL_SOCKET, SO_SNDBUF, (char*)&nBuf, &nBufLen); if( SOCKKET_BUFFER_SIZE != nBuf){ cout<<"Error at setsockopt(). ?socket????????"<<endl; closesocket(sockListen); closesocket(sockConn); WSACleanup(); exit(0); } //------------------------------------------------------------------------// DataPack dataPackSend; memset(&dataPackSend, 0, sizeof(dataPackSend)); int bytesRead; int bytesLeft; int bytesSend; int packCount; // Counts how many DataPack needed FILE *frp; // Used to read if(strcpy_s(dataPackSend.fName, "music.mp3")!=0){ cout<<"Error at strcpy_s()."<<endl; return 1; } // Open the file in read+binary mode err=fopen_s(&frp, dataPackSend.fName, "rb"); if(err!=0){ cout<<"Error at fopen_s()."<<endl; return 1; } char fileBuf[FILE_BUFFER_SIZE]; // Set the buffer size of File if(setvbuf(frp, fileBuf, _IONBF, FILE_BUFFER_SIZE)!=0){ cout<<"Error at setvbuf().Failed to set buffer size for file."<<endl; closesocket(sockListen); closesocket(sockConn); WSACleanup(); exit(0); } // Get file's length int fileLen=GetFileLen(frp); cout<<"File ???:"<<fileLen<<" bytes."<<endl; // Calculate how many DataPacks needed packCount=ceil( (double)fileLen/CONTENT_SIZE ); cout<<"File Length: "<<fileLen<<" "<<"Content Size: "<<CONTENT_SIZE<<endl; cout<<"???"<<packCount<<" ?DataPack"<<endl; int i=0; for(i=0; i<packCount; i++){ //?????dataPackSend????? memset(&dataPackSend, 0, sizeof(dataPackSend)); // Fill the dataPackSend if(strcpy_s(dataPackSend.fName, "abc.txt")!=0){ cout<<"Error at strcpy_s()."<<endl; return 1; } dataPackSend.packLen=DATA_PACK_SIZE; dataPackSend.fLen=fileLen; dataPackSend.packCount=packCount; if( packCount==1 ){ //??DataPack??? bytesRead=fread(fileBuf, 1, dataPackSend.fLen, frp); dataPackSend.contenLen=dataPackSend.fLen; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=0; //???????DataPack // ?????dataPackSend?Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack"<<endl; } }else if( packCount>1 && i<(packCount-1) ){ // ???(???????) bytesRead=fread(fileBuf, 1, CONTENT_SIZE, frp); dataPackSend.contenLen=CONTENT_SIZE; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=i; //?dataPackSend??????Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack."<<endl; } }else{ // ????? bytesRead=fread(fileBuf, 1, (dataPackSend.fLen-i*CONTENT_SIZE), frp); dataPackSend.contenLen=dataPackSend.fLen-i*CONTENT_SIZE; memcpy(dataPackSend.content, fileBuf, bytesRead); dataPackSend.packNum=i; //?dataPackSend???Client? if( SockSend(dataPackSend, sockConn, sockBuf)==0 ){ cout<<"??? "<<dataPackSend.packNum<<" ?DataPack."<<endl; } } } fclose(frp); closesocket(sockListen); closesocket(sockConn); WSACleanup(); return 0; } And this is Client. #include <WinSock2.h> #include <memory.h> #include <stdio.h> #include <iostream> using namespace std; #pragma comment(lib, "ws2_32.lib") #define MAX_FILE_NAME 100 #define DATA_PACK_SIZE 80*1000 // ??DataPack?????80KB #define SOCKKET_BUFFER_SIZE 80*1000 // socket??? #define FILE_BUFFER_SIZE DATA_PACK_SIZE-MAX_FILE_NAME-4*sizeof(int)-sizeof(u_long) //?????,??,??????content????? #define CONTENT_SIZE FILE_BUFFER_SIZE // DataPack?????content??? // Define a structure to hold the content of a file typedef struct FilePack{ char fName[MAX_FILE_NAME]; // File's name int fLen; // File's length int packNum; // Number of the DataPack int packLen; // DataPack's length int packCount; //DataPack??? int contenLen; // the content length the DataPack actually holds u_long index; // ?????????? char content[CONTENT_SIZE]; // DataPack?????? }DataPack, *pDataPack; void WinsockInitial(){ WSADATA wsaData; WORD wVersionRequested; int err; wVersionRequested=MAKEWORD(2,2); err=WSAStartup(wVersionRequested, &wsaData); if(err!=0){ cout<<"Error at WSAStartup()."<<endl; exit(0); } if( LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2 ){ cout<<"Error at version of Winsock. "<<endl; WSACleanup(); exit(0); } } int SockRecv(SOCKET sock, char *sockBuf){ int bytesLeft, bytesRecv; int idx=0; bytesLeft=DATA_PACK_SIZE; while(bytesLeft>0){ bytesRecv=recv(sock, &sockBuf[idx], bytesLeft, 0); if(bytesRecv==SOCKET_ERROR){ cout<<"Error at recv()."<<endl; return 1; } bytesLeft-=bytesRecv; idx+=bytesRecv; } return 0; } int main(){ int err; sockaddr_in addrServ; int port=8000; // Initialize Winsock WinsockInitial(); // Create a socket SOCKET sockClient=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sockClient==INVALID_SOCKET){ cout<<"Error at socket()."<<endl; WSACleanup(); return 1; } // Set the buffer size of socket char sockBuf[SOCKKET_BUFFER_SIZE]; int nBuf=SOCKKET_BUFFER_SIZE; int nBufLen=sizeof(nBuf); err=setsockopt(sockClient, SOL_SOCKET, SO_RCVBUF, (char*)&nBuf, nBufLen); if(err!=0){ cout<<"Error at setsockopt(). Failed to set buffer size for socket."<<endl; exit(0); } //??????????? err = getsockopt(sockClient, SOL_SOCKET, SO_RCVBUF, (char*)&nBuf, &nBufLen); if( SOCKKET_BUFFER_SIZE != nBuf){ cout<<"Error at getsockopt(). ?socket????????"<<endl; closesocket(sockClient); WSACleanup(); exit(0); } // Connect to the Server addrServ.sin_family=AF_INET; addrServ.sin_port=htons(port); addrServ.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); err=connect(sockClient, (sockaddr*)&addrServ, sizeof(sockaddr)); if(err==SOCKET_ERROR){ cout<<"Error at connect()."<<GetLastError()<<endl; closesocket(sockClient); WSACleanup(); return 1; }else{ cout<<"Connected to the FTP Server successfully."<<endl; } /* int i=0; int bytesRecv, bytesLeft, bytesWrite; int packCount=0, fLen=0; DataPack dataPackRecv; //?????? SockRecv(sockClient, sockBuf); memcpy(&dataPackRecv, sockBuf, sizeof(dataPackRecv)); cout<<"???? "<<dataPackRecv.packNum<<" ?DataPack."<<endl; cout<<"?DataPack??fName????: "<<dataPackRecv.fName<<endl; //??????? packCount=dataPackRecv.packCount; cout<<"?? "<<packCount<<" ?DataPack."<<endl; fLen=dataPackRecv.fLen; // Create a local file to write into FILE *fwp; err=fopen_s(&fwp, dataPackRecv.fName, "wb"); if(err!=0){ cout<<"Error at creat fopen_s(). Failed to create a local file to write into."<<endl; return 1; } // Set the buffer size of File char fileBuf[FILE_BUFFER_SIZE]; if(setvbuf(fwp, fileBuf, _IONBF, FILE_BUFFER_SIZE)!=0){ cout<<"Error at setvbuf().Failed to set buffer size for file."<<endl; memset(fileBuf, 0, sizeof(fileBuf)); closesocket(sockClient); WSACleanup(); exit(0); } //???????content???? memcpy(fileBuf, dataPackRecv.content, sizeof(dataPackRecv.content)); bytesWrite=fwrite(fileBuf, 1, sizeof(fileBuf), fwp); if(bytesWrite<sizeof(fileBuf)){ cout<<"Error at fwrite(). Failed to write the content of dataPackRecv to local file."<<endl; } //?????packCount-1????????????????? for(int i=1; i<packCount; i++){ // ????????? memset(sockBuf, 0, sizeof(sockBuf)); memset(&dataPackRecv, 0, sizeof(dataPackRecv)); memset(fileBuf, 0, sizeof(fileBuf)); SockRecv(sockClient, sockBuf); memcpy(&dataPackRecv, sockBuf, sizeof(dataPackRecv)); cout<<"???? "<<dataPackRecv.packNum<<" ?DataPack."<<endl; //???? memcpy(fileBuf, dataPackRecv.content, dataPackRecv.contenLen); bytesWrite=fwrite(fileBuf, 1, dataPackRecv.contenLen, fwp); if(bytesWrite<dataPackRecv.contenLen){ cout<<"Error at fwrite(). Failed to write the content of dataPackRecv to local file."<<endl; } } if( (i+1)==packCount ){ cout<<"??DataPack????????!"<<endl; } fclose(fwp); closesocket(sockClient); WSACleanup(); return 0;*/ }

    Read the article

< Previous Page | 689 690 691 692 693 694 695 696 697 698 699 700  | Next Page >