Visual Studio使用ip+端口访问项目

为了做移动端网页的适配,又不能在线上服务器调试,只能在本地vs上部署项目给移动端调试了,手机需要访问项目就需要配置一下了

1 找到.vs\config下的applicationhost.config配置文件

2 打开applicationhost.config文件,添加配置信息

在<binding protocol="http" bindingInformation="*:9453:localhost" />下添加一行, <binding protocol="http" bindingInformation="本地电脑ip:9453:*" />

3 以管理员的身份运行vs,然后就可以在局域网调试了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先要理解基本的原理,2台电脑间实现TCP通讯,首先要建立起连接,在这里要提到服务器端与客户端,两个的区别通俗讲就是主动与被动的关系,两个人对话,肯定是先有人先发起会话,要不然谁都不讲,谈什么话题,呵呵!一样,TCPIP下建立连接首先要有一个服务器,它是被动的,它只能等待别人跟它建立连接,自己不会去主动连接,那客户端如何去连接它呢,这里提到2个东西,IP地址和端口号,通俗来讲就是你去拜访某人,知道了他的地址是一号大街2号楼,这个是IP地址,那么1号楼这么多门牌号怎么区分,嗯!门牌号就是端口(这里提到一点,我们访问网页的时候也是IP地址和端口号,IE默认的端口号是80),一个服务器可以接受多个客户端的连接,但是一个客户端只能连接一台服务器,在连接后,服务器自动划 分内存区域以分配各个客户端的通讯,那么,那么多的客户端服务器如何区分,你可能会说,根据IP么,不是很完整,很简单的例子,你一台计算机开3个QQ,服务器怎么区分?所以准确的说是IP端口号,但是客户端的端口号不是由你自己定的,是由计算机自动分配的,要不然就出现端口冲突了,说的这么多,看下面的这张图就简单明了了。 在上面这张图中,你可以理解为程序A和程序B是2个SOCKET程序,服务器端程序A设置端口为81,已接受到3个客户端的连接,计算机C开了2个程序,分别连接到E和D,而他的端口是计算机自动分配的,连接到E的端口为789,连接到D的为790。 了解了TCPIP通讯的基本结构后,接下来讲解建立的流程,首先声明一下我用的开发环境是Visual Studio2008版的,语言C#,组件System.Net.Sockets,流程的建立包括服务器端的建立和客户端的建立,如图所示: 二、实现: 1.客户端: 第一步,要创建一个客户端对象TcpClient(命名空间在System.Net.Sockets),接着,调用对象下的方法BeginConnect进行尝试连接,入口参数有4个,address(目标IP地址),port(目标端口号),requestCallback(连接成功后的返调函数),state(传递参数,是一个对象,随便什么都行,我建议是将TcpClient自己传递过去),调用完毕这个函数,系统将进行尝试连接服务器。 第二步,在第一步讲过一个入口参数requestCallback(连接成功后的返调函数),比如我们定义一个函数void Connected(IAsyncResult result),在连接服务器成功后,系统会调用此函数,在函数里,我们要获取到系统分配的数据流传输对象(NetworkStream),这个对象是用来处理客户端与服务器端数据传输的,此对象由TcpClient获得,在第一步讲过入口参数state,如果我们传递了TcpClient进去,那么,在函数里我们可以根据入口参数state获得,将其进行强制转换TcpClient tcpclt = (TcpClient)result.AsyncState,接着获取数据流传输对象NetworkStream ns = tcpclt.GetStream(),此对象我建议弄成全局变量,以便于其他函数调用,接着我们将挂起数据接收等待,调用ns下的方法BeginRead,入口参数有5个,buff(数据缓冲),offset(缓冲起始序号),size(缓冲长度),callback(接收到数据后的返调函数),state(传递参数,一样,随便什么都可以,建议将buff传递过去),调用完毕函数后,就可以进行数据接收等待了,在这里因为已经创建了NetworkStream对象,所以也可以进行向服务器发送数据的操作了,调用ns下的方法Write就可以向服务器发送数据了,入口参数3个,buff(数据缓冲),offset(缓冲起始序号),size(缓冲长度)。 第三步,在第二步讲过调用了BeginRead函数时的一个入口参数callback(接收到数据后的返调函数),比如我们定义了一个函数void DataRec(IAsyncResult result),在服务器向客户端发送数据后,系统会调用此函数,在函数里我们要获得数据流(byte数组),在上一步讲解BeginRead函数的时候还有一个入口参数state,如果我们传递了buff进去,那么,在这里我们要强制转换成byte[]类型byte[] data= (byte[])result.AsyncState,转换完毕后,我们还要获取缓冲区的大小int length = ns.EndRead(result),ns为上一步创建的NetworkStream全局对象,接着我们就可以对数据进行处理了,如果获取的length为0表示客户端已经断开连接。 具体实现代码,在这里我建立了一个名称为Test的类: 2.服务器端: 相对于客户端的实现,服务器端的实现稍复杂一点,因为前面讲过,一个服务器端可以接受N个客户端的连接,因此,在服务器端,有必要对每个连接上来的客户端进行登记,因此服务器端的程序结构包括了2个程序结构,第一个程序结构主要负责启动服务器、对来访的客户端进行登记和撤销,因此我们需要建立2个类。 第一个程序结构负责服务器的启动与客户端连接的登记,首先建立TcpListener网络侦听类,建立的时候构造函数分别包括localaddr和port2个参数,localaddr指的是本地地址,也就是服务器的IP地址,有人会问为什么它自己不去自动获得本机的地址?关于这个举个很简单的例子,服务器安装了2个网卡,也就有了2个IP地址,那建立服务器的时候就可以选择侦听的使用的是哪个网络端口了,不过一般的电脑只有一个网络端口,你可以懒点直接写个固定的函数直接获取IP地址System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName())[0],GetHostAddresses函数就是获取本机的IP地址,默认选择第一个端口于是后面加个[0],第2个参数port是真侦听的端口,这个简单,自己决定,如果出现端口冲突,函数自己会提醒错误的。第二步,启动服务器,TcpListener.Start()。第三步,启动客户端的尝试连接,TcpListener.BeginAcceptTcpClient,入口2个参数,callback(客户端连接上后的返调函数),state(传递参数,跟第二节介绍的一样,随便什么都可以,建立把TcpListener自身传递过去),第四步,建立客户端连接上来后的返调函数,比如我们建立个名为void ClientAccept(IAsyncResult result)的函数,函数里,我们要获取客户端的对象,第三步里讲过我们传递TcpListener参数进去,在这里,我们通过入口参数获取它TcpListener tcplst = (TcpListener)result.AsyncState,获取客户端对象TcpClient bak_tcpclient = tcplst.EndAcceptTcpClient(result),这个bak_tcpclient我建议在类里面建立个列表,然后把它加进去,因为下一个客户端连接上来后此对象就会被冲刷掉了,客户端处理完毕后,接下来我们要启动下一个客户端的连接tcplst.BeginAcceptTcpClient(new AsyncCallback(sub_ClientAccept), tcplst),这个和第三步是一样的,我就不重复了。 第二个程序结构主要负责单个客户端与服务器端的处理程序,主要负责数据的通讯,方法很类似客户端的代码,基本大同,除了不需要启动连接的函数,因此这个程序结构主要启动下数据的侦听的功能、判断断开的功能、数据发送的功能即可,在第一个程序第四步我们获取了客户端的对象bak_tcpclient,在这里,我们首先启动数据侦听功能NetworkStream ns= bak_tcpclient.GetStream();ns.BeginRead(data, 0, 1024, new AsyncCallback(DataRec), data);这个跟我在第二节里介绍的是一模一样的(第二节第10行),还有数据的处理函数,数据发送函数,判断连接已断开的代码与第二节也是一模一样的,不过在这里我们需要额外的添加一段代码,当判断出连接已断开的时候,我们要将客户端告知第一个程序结构进行删除客户端操作,这个方法我的实现方法是在建立第二个程序结构的时候,将第一个程序结构当参数传递进来,判断连接断开后,调用第一个程序结构的公开方法去删除,即从客户端列表下删除此对象。 第一个程序结构我们定义一个TSever的类,第二个程序结构我们一个TClient的类,代码如下:TSever类
### 回答1: 首先,你需要知道你的 MVC 服务器在本机上的 IP 地址和端口号。你可以在 Visual Studio 中查看 MVC 服务器的运行端口号,通常是默认的 5000 端口。 然后,在 Android Studio 中,你可以使用 OkHttp 库来与 MVC 服务器进行交互。你需要创建一个 OkHttpClient 对象,并使用其中的 .newCall() 方法来创建一个 Call 对象,然后使用 Request.Builder 来构建请求。 例如,如果你的 MVC 服务器位于本机上的 IP 地址为 192.168.0.100,端口号为 5000,你可以使用以下代码来构建一个 GET 请求: ``` OkHttpClient client = new OkHttpClient(); String url = "http://192.168.0.100:5000/api/sample"; Request request = new Request.Builder() .url(url) .build(); Call call = client.newCall(request); ``` 注意,这里的 url 是你的 MVC 服务器的地址和端口号。 在 Android Studio 模拟器中运行时,你需要确保模拟器和本机在同一个网络中,并且可以访问到本机的 IP 地址。你可以使用 adb 命令来查看模拟器的 IP 地址。如果你的 MVC 服务器是运行在本机上的,你可以使用 localhost 或者 127.0.0.1 来代替本机的 IP 地址。 另外,如果你的 MVC 服务器使用了 HTTPS 协议,你需要在 OkHttpClient 中设置 SSL Socket Factory,以确保与服务器的连接是安全的。 ### 回答2: 在Android Studio中调用本机上的Visual Studio编写的MVC服务器时,可以使用OkHttp库来进行网络请求。对于使用OkHttp发送请求,url参数是用来指定服务器地址和具体的API路径的。url应该包含服务器的IP地址或域名,以及API的路径。 例如,如果服务器地址是本地主机上的127.0.0.1,而API路径是"/api/user",那么url可以设置为"http://127.0.0.1/api/user"。 在使用Android Studio的模拟器运行时,需要注意以下几点: 1. 网络权限:确保在AndroidManifest.xml文件中添加了网络权限,以允许应用程序访问网络。在<manifest>标签下添加以下权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 2. 运行环境:确保模拟器已经启动,并与Android Studio建立连接。可以通过点击运行按钮或使用快捷键Shift+F10来运行应用程序。 3. IP地址:由于模拟器运行在虚拟环境中,其IP地址与本地主机的IP地址可能不同。可以通过在模拟器中打开浏览器,并访问特定的网站来获取模拟器的IP地址。 4. 防火墙设置:如果使用模拟器访问本地主机的服务器,确保防火墙设置允许连接。可以尝试在本地防火墙设置中添加一个规则,允许端口8888(默认模拟器使用端口)的入站连接。 以上是在Android Studio中调用本机上Visual Studio编写的MVC服务器时,使用OkHttp方法发送请求的一些注意事项。 ### 回答3: 当Android Studio调用本机上Visual Studio写的MVC服务器时,使用OkHttp方法,我们可以通过查看服务器的IP地址和端口号来确定URL。服务器一般会提供IP地址和特定的端口供客户端连接。例如,如果服务器运行在本机上,并监听端口8080,那么URL可能是`http://127.0.0.1:8080`或`http://localhost:8080`。 在使用Android Studio模拟器运行时,需要注意以下几点: 1. 虚拟设备的网络连接:请确保虚拟设备和主机之间的网络连接正常,可以访问本机上的MVC服务器。具体可以通过检查模拟器中的网络设置,确认网络类型配置正确。 2. 权限:如果你的应用需要使用网络权限,你需要在AndroidManifest.xml文件中添加网络访问权限,以允许应用与服务器进行通信。 3. IP地址和端口:确保使用正确的IP地址和端口访问本机上的MVC服务器。确保这些细节在你的代码中正确配置。 4. 安全性:如果本机MVC服务器使用了HTTPS协议,那么你还需要在OkHttp的请求中配置TLS(传输层安全)支持,以确保安全的通信。 5. 调试:使用Android Studio的调试功能来监视网络请求和响应的详细信息,以便快速解决问题。 总之,确保正确配置服务器的URL和端口,同时检查网络连接和权限设置,就可以在Android Studio模拟器中成功调用本机上的Visual Studio编写的MVC服务器了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值