社区
C#
帖子详情
socket不能接受数据的问题
xiaoyegood
2006-08-18 12:08:51
写了一段socket传输文件的代码
但当客户端向服务器发送数据时报错:“由于套接字没有连接并且没有提供地址,发送或接受数据的请求没有被接受”
但连接还是正常能连上在接受数据时就出了这个问题
请大虾指点一下迷津
...全文
169
11
打赏
收藏
socket不能接受数据的问题
写了一段socket传输文件的代码 但当客户端向服务器发送数据时报错:“由于套接字没有连接并且没有提供地址,发送或接受数据的请求没有被接受” 但连接还是正常能连上在接受数据时就出了这个问题 请大虾指点一下迷津
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Yellow198267
2006-08-18
打赏
举报
回复
把代码弄出来看看
江城老温
2006-08-18
打赏
举报
回复
应该把代码帖出来的。方便找错误.
江城老温
2006-08-18
打赏
举报
回复
连接上之后还得为ClientSocket需要定义server端的IP地址和开放的端口(port)
Edifier0709
2006-08-18
打赏
举报
回复
首先,请你确定你的client确实连上server
xiaoyegood
2006-08-18
打赏
举报
回复
明白了谢谢大虾
www_123du_com
2006-08-18
打赏
举报
回复
服务器的代码:
sok.Accept();//这里会返回一个Socket,你应该用这个socket做数据传输操作
---->
socket client = sok.Accept();//而sok可以继续监听:或者在client处理完后继续监听,或者分配一个线程进行client的处理,sok继续循环监听
Koala_sea
2006-08-18
打赏
举报
回复
客户端
string ip_bj = Get_IP();
try
{
IPEndPoint hostEP=new IPEndPoint(IPAddress.Parse(textBox1.Text),int.Parse(textBox2.Text));
Socket mysocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
mysocket.Connect(hostEP);
}
catch(Exception ex)
{
MessageBox.Show("连接错误\n\r"+ex.Message);
return;
}
byte[] msgx = Encoding.Default.GetBytes(ip_bj);
try
{
mysocket.Send(msgx);
}
catch
{
MessageBox.Show("发送错误");
}
byte[] bytes = new byte[1024];
int bytesRead=mysocket.Receive(bytes);
listBox1.Items.Add(Encoding.Default.GetString(bytes,0,bytesRead) + ""+DateTime.Now+"");
mysocket.Shutdown(SocketShutdown.Both);
mysocket.Close();
}
catch(Exception ex)
{
mysocket.Shutdown(SocketShutdown.Both);
mysocket.Close();
}
private string Get_IP()
{
IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
return addressList[0].ToString();
}
服务端
public static IPAddress GetServer_IP()
{
IPHostEntry ipDns=Dns.GetHostByName(Dns.GetHostName());
return ipDns.AddressList[0];
}
private void BeginListen()
{
IPAddress Server_Ip=GetServer_IP();
IPEndPoint ip=new IPEndPoint(Server_Ip,System.Convert.ToInt32(textBox1.Text.ToString()));
Socket Socket_IP=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
Socket_IP.Bind(ip);
while(true)
{
try
{
Socket_IP.Listen(5);
Socket Socket_Listen=Socket_IP.Accept();
byte[] byteMsg=new byte[1024];
int msg = Socket_Listen.Receive(byteMsg);
listBox1.Items.Add("Recive: " + Encoding.Default.GetString(byteMsg,0,msg) + " "+DateTime.Now+"");
byte[] msgx = Encoding.Default.GetBytes(textBox2.Text);
Socket_Listen.Send(msgx);
}
catch(SocketException ex)
{
MessageBox.Show(ex.Message);
}
}
}
记得给分
程勉超
2006-08-18
打赏
举报
回复
服务端的socket没有抓住这个connect
Koala_sea
2006-08-18
打赏
举报
回复
你的有点乱 我给你贴个代码吧
wmhnq
2006-08-18
打赏
举报
回复
我吐,这是什么代码啊
xiaoyegood
2006-08-18
打赏
举报
回复
代码如下
客户端:Socket sok = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ippoint =new IPEndPoint(IPAddress.Parse("192.168.3.13"),8080);
FileStream fs = new FileStream("D:\\Program\\实例代码\\Socket\\01.jpg",FileMode.OpenOrCreate,FileAccess.Read);
byte[] fssize=new byte[fs.Length];
BinaryReader strread = new BinaryReader(fs);
fs.Read(fssize, 0, fssize.Length-1);
strread.Read(fssize, 0, fssize.Length-1);
try
{
sok.Connect(ippoint);
}
catch
{
MessageBox.Show("服务未启动");
return;
}
sok.SendTo(fssize,ippoint);
label1.Text = fs.Length.ToString();
fs.Close();
sok.Shutdown(SocketShutdown.Send);
sok.Close();
服务器
Console.WriteLine("服务器启动!");
Socket sok = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipend = new IPEndPoint(IPAddress.Parse("192.168.3.13"),8080);
sok.Bind(ipend);
sok.Listen(2);
FileStream recfs = new FileStream("02.jpg",FileMode.OpenOrCreate);
byte[] recbyte = new byte[229888];
sok.Accept();
BinaryWriter newfilestr = new BinaryWriter(recfs);
sok.Receive(recbyte);
recfs.Write(recbyte, 0, recbyte.Length-1);
newfilestr.Write(recbyte, 0, recbyte.Length-1);
recfs.Close();
sok.Shutdown(SocketShutdown.Receive);
sok.Close();
Console.WriteLine("接受完毕");
Console.ReadLine();
利用
socket
连续发送与连续接收
数据
刚刚学习
socket
的时候编写的程序,可以实现客户端连续向服务器发送三个
数据
,服务器端连续
接受
三个
数据
并返回给客户端处理结果
c#
Socket
多线程 分包 发送/
接受
数据
c#
Socket
多线程 分包 发送/
接受
数据
客户端 分包发送
数据
,服务端
接受
并相应, 第一次接触
Socket
也不知道理解的对不对 有
问题
的还请见谅
Android笔记:
Socket
客户端收发
数据
http://www.cnblogs.com/shaocm/p/3528346.html找了很久在这个大神的博客里找到的,现在与大家分享
java
socket
通讯例程 多线程读写 可以同时收发不同终端的消息
故另外开启一个线程,用于
接受
客户端的
socket
消息。服务器在收到一个
socket
连接之后,把该
socket
保存到队列中,并对队列中的每个
socket
开启各自的读写线程。测试可以在不同控制台运行server和client,服务器接收消息...
2
socket
循环接收
数据
socket
循环接收大
数据
问
socket
异步接收
数据
2
socket
循环接收
数据
socket
循环接收大
数据
问
socket
异步接收
数据
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章