c#socket编程连接不上 高分悬赏

我做了最基础的一个,只是测试能不能接上这是服务器端的usingSystem;usingSystem.Collections.Generic;usingSystem.Lin... 我做了最基础的一个,只是测试能不能接上
这是服务器端的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int port = 2000;
string host = "127.0.0.1";
IPAddress ipa = IPAddress.Parse(host);
IPEndPoint ipep = new IPEndPoint(ipa, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(ipep);
s.Listen(0);
Console.WriteLine("正在监听");
Socket ls = s.Accept();
Console.WriteLine("已建立连接");
string recstr = "";
byte[] recbyte = new byte[1024];
int recleng;
recleng = ls.Receive(recbyte, recbyte.Length, 0);
recstr += Encoding.UTF8 .GetString(recbyte,0,recleng );
Console.WriteLine("{0}",recstr );
Console.ReadLine();
}
}
}
这是客户端的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int port = 2000;
string ipa = "202.20.81.90";
IPAddress ipas = IPAddress.Parse(ipa);
IPEndPoint ipenp = new IPEndPoint(ipas, port);
Socket sdd = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sdd.Connect(ipenp);
Console.WriteLine("正在连接");
string sendstr = "你好";
byte[] sendbyte = new byte[1024];
sendbyte = Encoding.UTF8 .GetBytes(sendstr);
sdd.Send(sendbyte, sendbyte.Length, 0);
sendstr=Console.ReadLine();
sendbyte = Encoding.UTF8.GetBytes(sendstr);
sdd.Send(sendbyte, sendbyte.Length, 0);
Console.ReadLine();
}
}
}
我将客户端的ip改为“127.0.0.1”后俩个都在自己机子上可以用
但将客户端的放到别人机子上就是接不起来,不知道为什么?请各位帮忙解决下,谢了
展开
 我来答
百度网友77560bd
2010-04-01 · TA获得超过276个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:352万
展开全部
在别人的机器上
ping 你的ip ,
看看有响应吗? 没有的话,说明你们之间的物理连接都不通。
有响应的话,继续如下流程
cmd下 telnet 你的ip 你的端口
如telnet 192.168.12.123 8808
看看有响应吗?没有的话,说明你的机器端口没有开放,可能是有防火墙之类的。
如果telnet有响应的话,
那就是你的程序有问题了。
sunny906
2010-04-01
知道答主
回答量:19
采纳率:0%
帮助的人:11.5万
展开全部
把服务端的 s.Listen(0);改为 s.Listen(一个具体的整数,但不要太大);
还有,如果服务端和客户端不在一台机器上,就要指定服务端的IP地址,而127.0.0.1代表的是本机地址
所以要把服务端的127.0.0.1改为你服务器的真实地址,如202.20.81.91
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式