关于visual studio 的问题

问题描述

关于visual studio 的问题

这里有个关于visual studio的问题,c++语言,win32控制台应用程序,调试不出来,求大神们解答
// 162.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "iostream"
#include "winsock2.h"
#include "fstream"
#include "process.h"
#define PORT 65432
#pragma comment(lib,"ws2_32.lib")
using namespace std;
char Command[20];
char filename[128];
char fname[128];
ifstream inFile;
unsigned int _stdcall GetCommand(void *par);
unsigned int _stdcall SendFlie(void *par);

int _tmain(int argc, _TCHAR* argv[])
{
/******定义相关变量*******/
int sock_server;
struct sockaddr_in addr,client_addr;
unsigned hThread1,hThread2;
unsigned int ThreadID1,ThreadID2;
int addr_len=sizeof(struct sockaddr_in);
cout<<"请输入要发送的文件名:
";
cin>>filename;
/*******以二进制打开要分发的文件********/
inFile.open(filename,ios::in|ios::binary);
if(!inFile.is_open())
{
cout<<"Cannot open "<
return 0;
}
/*********截取发送给客户端的文件名*********/
int len=strlen(filename);
int i=len;
while(filename[i]!=''&&i>=0)
i--;
if(i<0)
i=0;
else
i++;
int m=0;
while(filename[m+i]!='')
{
fname[m]=filename[m+i];
m++;
}
/*******初始化winsock DLL******/
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(2,2);
if(WSAStartup(wVersionRequested,&wsaData)!=0)
{
cout<<"加载winsock.DLL失败!
";
return 0;
}
/******创建套接字*****/
if((sock_server=socket(AF_INET,SOCK_STREAM,0))<0)
{
cout<<"创建套接字失败!
";
WSACleanup();
return 0;
}
/*****设置套接字为非阻塞模式*****/
unsigned long ul=1;
int nRet=ioctlsocket(sock_server,FIONBIO,(unsigned long )&ul);
if(nRet==SOCKET_ERROR)
{
cout<<"设置套接字选项失败!
";
closesocket(sock_server);
WSACleanup();
return 0;
}
/
*****绑定IP接口******/
memset((void )&addr,0,addr_len);
addr.sin_family =AF_INET;
addr.sin_port =htons(PORT);
addr.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sock_server,(LPSOCKADDR)&addr,sizeof(addr))!=0)
{
cout<<"绑定IP地址失败!
";
closesocket(sock_server);
WSACleanup();
return 0;
}
/
****开始监听*****/
if(listen(sock_server,5)!=0)
{
cout<<"listen函数调用失败!
";
closesocket(sock_server);
WSACleanup();
return 0;
}
else
cout<<"listenning......
";
/*****启动命令接收线程******/
hThread1=_beginthreadex(NULL,0,GetCommand,(LPVOID)Command,0,&ThreadID1);
/******接收并处理客户连接*****/
SOCKET newsock;
while(1)
{
if(strcmp(Command,"close")==0) break;
newsock=accept(sock_server,(LPSOCKADDR)&client_addr,&addr_len);
if(newsock!=INVALID_SOCKET)
{
cout<<"connect from "<<inet_ntoa(client_addr.sin_addr)<<endl;
hThread2=_beginthreadex(NULL,0,SendFile,(LPVOID)newsock,0,&ThreadID2);
}
}
inFile.close();
closesocket(sock_server);
return 0;
}
unsigned int _stdcall SendFile(void par)
{
char buffer[1000];
SOCKET sock=(SOCKET)par;
/
****设置套接字为阻塞模式******/
unsigned long ul=0;
int nRet=ioctlsocket(sock,FIONBIO,(unsigned long )&ul);
send(sock,(char *)fname,strlen(fname)+1,0);
int size=recv(sock,buffer,sizeof(buffer),0);
if(strcmp(buffer,"OK")!=0)
{
cout<<"客户端出错!
";
closesocket(sock);
return 0;
}
/
****传输文件内容******/
while(!inFile.eof())
{
inFile.read(buffer,sizeof(buffer));
//size=inFile.gcount ();
send(sock,(char )buffer,size,0);
}
cout<<"文件传输结束!
";
closesocket(sock);
return 0;
}
/
*****从键盘接收命令的线程函数********/
unsigned int _stdcall GetCommand(void *par)
{
char *p=(char *)par;
while(strcmp(p,"close")!=0)
gets(p);
return 0;
}

解决方案

看下防火墙的配置,系统设置等等。

解决方案二:

1。关闭Windows防火墙。
2。确认通信双方之间能够被路由。简单说就是同一个局域网,或者说一个在公网一个在局域网,或者都在公网。如果是两个局域网直接就必须用端口映射或其他方法。
3。用抓包软件分析

解决方案三:

关于Visual Studio2010字符集的问题
Visual Studio 2013 class颜色问题
解决 visual studio cocos2d-x 3.x 下 Scale9Sprite 的问题

解决方案四:

时间: 2024-11-05 04:52:10

关于visual studio 的问题的相关文章

并行安装Visual Studio系统的注意事项分析

有时候出于系统兼容性的需要,开发人员可能会在操作系统上安装Visual的各个版本.如 Visual2008与2005.为什么开发人员会有这么需要呢?如原先开发人员在2005环境下开发了一个 ERP系统.现在开发人员觉得2008这个开发平台比较适合自己,就需要将这个软件移植到2008的 开发环境下.由于不同的版本在功能上会有所差异,为此就需要同时使用两个不同版本的开发 环境,以便于测试系统的兼容性.此时就需要在同一台计算机上同时部署多个版本的开发环境 .利用专业的术语就是说,Visual的并行安装

visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者)

问题描述 visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者) 我看了一些网上的教程,但是有的不懂,所以很久都没有成功.望指点!十分感谢! 解决方案 keil c51有一个workbench,外观和VC++一样,直接就可以用.

Visual Studio 2010用户界面的重要升级

Visual Studio已经通过"Visual Studio 2010 Pro Power Tool"工具插件进行了重要的用 户界面升级.除了最终修复"Add References"(增加参考)对话框之外,主要的修改是他们称 作"Document Well 2010 Plus"的功能.这个功能显著改变了在文件窗口处理标签的方式. 这个新的"Add References"对话框的外观与原来的对话框完全不同.在默认状态下,这个

Visual Studio 2008可扩展性开发(一):VS概览

前言 Visual Studio是微软最知名的产品之一,在使用微软技术的开发人员的心目中尤为如 此.相信这一点无须多说.它建立在IDE(统一开发环境)的基础之上,可用于开发多种 不同类型的应用程序. Visual Studio,通常被简称为VS(以下皆按此简称),支持多种平台和编程语言.了 解VS的历史以及每个版本的更迭,对学习它的扩展性开发会很有好处.所以在这里简单地 说说VS在过去的12年里的历史. VS的历史 在软件领域,VS的历史算比较长的了.在此期间,微软开发了数种编程语言和支持这 些

在 Windows 上使用 Visual Studio 编译 CURL

导语: 教你科学地编译 Windows 版本的 libcurl (使用Windows SSPI或者OpenSSL) 准备工具 CMake (3.4.0) Zlib (1.2.8) libcurl (7.45.0) OpenSSL (1.0.2d) Visual Studio 2015 目标 得到可以使用的 libcurl 静态库 步骤 编译Zlib 打开CMake,把 Zlib 目录下的 CMakeList.txt 拖进去,生成解决方案,这一步不能用 contrib\vstudio 下的 sln

Visual Studio 2010

谈谈Visual Studio 2010- IntelliTrace(智能跟踪) Visual Studio 2010 Ultimate 版本有个新功能IntelliTrace(智能跟踪),IntelliTrace被引入到Visula Studio中来加速我们对.NET应用程序的调试,它通过对预先设置的事件和方法在运行过程中的跟踪并将其有效地传递给调试执行者,从而快速的传递程序在执行过程中的状态和各种信息来帮助开发者更好的调试程序,快速的发现问题.实际上,在Visual Studio 2010之

Visual Studio 2010自动执行属性

详解Visual Studio 2010中自动执行属性 在Visual Studio 2010中,有不少特性能帮助大家更好,更快的完成开发工作.本文将介绍的是自动执行属性. 自动执行的属性能够让你迅速指定一个类的属性,不用写"Get"和"Set"这个属性的代码.当你为自动执行的属性写代码的时候,Visual Basic编译器自动创建一个私有字段存储这个属性的变量,此外还创建相关的"Get"和"Set"步骤. 采用自动执行的属性

Visual Studio 2010的Web项目jQuery库

我们知道在Visual Studio 2010的非空Web项目(含Webform和MVC)中,都自动包含了jQuery库在项目的Scripts文件夹中.  点击放大 但细心的人们都看到了正式版中包含的jQuery版本是1.4.1版,而不是jQuery官方最新发布的1.4.2版.处于新版效率的极大提升以及部分bug的修复,推荐大家跟新使用1.4.2版,而放弃1.4.1版.单个项目的调整比较简单就是把旧版本的删除,然后添加上1.4.2版的相应文件即可.但我们很多人可能更希望是以后创建的项目都是1.4

英文版的Visual Studio.Net 2003 快捷键!

visual Visual Studio.Net 2003 Shortcut Keys Shortcut Key Description Project Shortcut Key Build.BuildSolution CTRL + SHIFT + B Builds the solution Build.Compile CTRL + F7 Creates an object file containing machine code, linker directives, sections, ex

在Visual Studio 2005和ASP.NET 2.0中使用强类型数据存取

asp.net|visual|数据 "Never put off until run time what can be done at compile time."David Gries, Compiler Construction for Digital Computers Introduction 作为程序员,我们在学习一些新技术的时候,范例有时候会是我们最大的敌人.指南通常被设计成简单易懂,但同时里面的懒惰.无效率的甚至是危险的代码编写会增多.像这种情况最普遍存在的就是在ADO.