| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3322 人关注过本帖
标题:一个简单的基于tcp的client/server程序遇到问题
只看楼主 加入收藏
YuM
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-6-25
收藏
 问题点数:0 回复次数:2 
一个简单的基于tcp的client/server程序遇到问题

小第做一套client/server的程序:

server开启,监听localhost的4321端口,client启动后填写主机IP进行连接,之后进行输入,在服务端显示

问题是:只有IP打127.0.0.1或者localhost的时候才可以成功连接,如果打机器的真实IP连接不了,高手可以告诉我为什么吗?? 两个文件的代码如下:

net_server.cs

程序代码:

using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; //using System.Threading;

public class net_server { public static void Main() { try { Int32 port = 4321; IPAddress localAddr = Dns.Resolve(\"localhost\").AddressList[0];

TcpListener server = new TcpListener(localAddr, port);

server.Start(); Byte[] bytes = new Byte[256]; String data = null;

while(true) { Console.WriteLine(\"服务程序正在监听。。。\");

TcpClient client = server.AcceptTcpClient(); Console.WriteLine(\"成功建立连接。。。\");

data = null;

NetworkStream stream = client.GetStream();

Int32 i;

while((i = stream.Read(bytes, 0, bytes.Length))!=0) { data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine(String.Format(\"Received: {0}\", data)); } client.Close(); } } catch(SocketException e) { Console.WriteLine(\"SocketException: {0}\", e); } Console.WriteLine(\"\nHit enter to continue...\"); Console.Read(); } }

net_client.cs

程序代码:

using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; //using System.Threading;

public class net_client { public static void Main(string[] args) { string host; Int32 port = 4321;

if(args.Length<=0) { Console.Write(\"请输入主机IP地址:\"); host=Console.ReadLine(); } else { host=args[0]; }

//IPAddress server = IPAddress.Parse(host); //IPEndPoint ipEP=new IPEndPoint(server,port); try { TcpClient client = new TcpClient(host,port); NetworkStream stream = client.GetStream(); Byte[] data = new Byte[256]; string senddata; while(true) { senddata=Console.ReadLine(); data = System.Text.Encoding.ASCII.GetBytes(senddata); stream.Write(data,0,data.Length); } client.Close(); } catch (ArgumentNullException e) { Console.WriteLine(\"ArgumentNullException: {0}\", e); } catch (SocketException e) { Console.WriteLine(\"SocketException: {0}\", e); } catch (Exception e ) { Console.WriteLine(e.ToString()); } Console.WriteLine(\"\n Press Enter to continue...\"); Console.Read(); } }

期待回答!!!不胜感激!

搜索更多相关主题的帖子: client tcp server 
2004-06-25 05:38
YuM
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-6-25
收藏
得分:0 

知道了一点,IP那里原来要添自己的真实IP,但是又有新问题了!!!

在c#中怎么可以动态获得自己的IP,假如多网卡又如何啊?

版主,求助!!!!!

2004-06-25 21:11
shan0yu
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2004-6-12
收藏
得分:0 
以下是引用YuM在2004-06-25 21:11:13的发言:

版主,求助!!!!!

斑竹向广大的人民求助!!!!!!!!!

(斑竹是个站在门口的家伙,呵呵)

还请各位多多帮忙!


不雨花尤落 无风絮自飞
2004-06-26 09:06
快速回复:一个简单的基于tcp的client/server程序遇到问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016933 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved