首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于socket的有关问题~求大家帮小弟我下

2013-06-25 
【求助】关于socket的问题~!求大家帮我下这是客户端代码:using System using System .Text using System.N

【求助】关于socket的问题~!求大家帮我下

关于socket的有关问题~求大家帮小弟我下

这是客户端代码:


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

namespace SocketClient
{
class client
{
private static byte[] result = new byte[1024];
static void Main(string[] args)
{
//设定服务器IP地址
IPAddress ip = IPAddress.Parse("127.0.0.1");
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
clientSocket.Connect(new IPEndPoint(ip, 8080)); //配置服务器IP与端口
Console.WriteLine("连接服务器成功");
}
catch
{
Console.WriteLine("连接服务器失败,请按回车键退出!");
return;
}
//通过clientSocket接收数据
//int receiveLength = clientSocket.Receive(result);
//Console.WriteLine("接收服务器消息:{0}",Encoding.ASCII.GetString(result,0,receiveLength));

byte[] bytes = new byte[1024];
String input;
while (true) {
input = Console .ReadLine ();
bytes = Encoding .ASCII .GetBytes (input);
clientSocket .Send(bytes);
if(input == "exit"){
break ;
}
}
        }
}
}


这是服务端代码:


using System;
using System .Net .Sockets ;
using System .Net ;
using System .Text ;
using System .Threading ;
using System.Collections;


namespace SocketServer{
public class unitysocket {

private static Socket soc ;
private static byte[] buffer = new byte[1024];
static void Main(string[] args){
IPAddress ip = IPAddress.Parse ("127.0.0.1");
IPEndPoint ipep = new IPEndPoint (ip, 8080);
soc = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
soc.Bind (ipep);
soc.Listen (10);
Thread thread = new Thread (new ThreadStart (Redata));
thread .Start ();
}
//接受数据
static void Redata(){
Socket s = soc ;
while(true){
try{
s.Accept();
int rs = s.Available;
s.Receive(buffer,0,rs,SocketFlags .None );
if(rs == 0){
continue ;
}
string rdata =  Encoding .ASCII .GetString(buffer).Substring (0,rs);
Console.WriteLine(rdata );
}catch(Exception e ){
Console.WriteLine(e.ToString());
}
}

}
}
}

socket
[解决办法]
这个例子很简单,你参考一下
[解决办法]


端口号8080改成其它的试试看?
[解决办法]
因为s.Accept的时候,给出了一个的通话用的Socket,你要用这个Socket来接收,而不是用s。


try
{
  Socket socket = s.Accept();
  while(true)
  {
     int rs = socket.Receive(buffer, 0, buffer.Length, .None );
     ...
  }

热点排行