Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med egentillverkad ping

Postades av 2005-09-19 10:01:19 - Johan Jonsson, i forum c# (c-sharp), Tråden har 0 Kommentarer och lästs av 810 personer

När jag kör denna kod får jag meddelandet:
"A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself. "

Men bufferten är inte för liten, har jag fel i koden eller fel rättigheter?

Mina ögon blöder, snälla hjälp!


using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Data.SqlClient;

namespace Ifd
{
/// <summary>
/// Summary description for ping.
/// </summary>

public class ping
{

int pingBytes = 32;
Socket s;
IPHostEntry pingTarget, pingSource;
IPEndPoint ipServer,ipLocal;
EndPoint epServer,epLocal;
Random randId = new Random();
ushort id = (ushort)1;//randId.Next(ushort.MaxValue);
ushort seqNr=120;
byte [] sendBuf;
byte [] recBuf;
public ping(String server)
{
pingTarget = Dns.GetHostByName(server);
ipServer = new IPEndPoint(pingTarget.AddressList[0],7);
epServer = (EndPoint)(ipServer);

pingSource = Dns.GetHostByName(Dns.GetHostName());
ipLocal = new IPEndPoint(pingSource.AddressList[0],7);
epLocal = (EndPoint)(ipLocal);
s = new Socket(AddressFamily.InterNetwork,
socketType.Raw, ProtocolType.Icmp);
s.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.SendTimeout,1000);
s.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.ReceiveTimeout,1000);
ICMP_pack packet = new ICMP_pack();

fillICMP(packet, id, seqNr, pingBytes);
sendBuf = new byte[pingBytes+8];
recBuf = new byte[65536];//Kan ej vara för liten
classToByte(packet,sendBuf);
packet.checksum = cSum(sendBuf);
classToByte(packet,sendBuf);
}

public int send()
{
return s.SendTo(sendBuf,pingBytes+8,0,epServer);
}
public int rec()
{
int t =s.ReceiveFrom(recBuf,pingBytes+8,0,ref epLocal);
s.Close();
return t;
}
public byte[] getAr()
{
return sendBuf;
}
private void classToByte(ICMP_pack p, byte[] b)
{
b[0] = p.Type;
b[1] = p.SubCode;
byte [] cs = BitConverter.GetBytes(p.checksum);
byte [] id = BitConverter.GetBytes(p.id);
byte [] sn = BitConverter.GetBytes(p.seqNr);
for(int i = 0 ; i < p.Data.Length ; i++)
p.Data[i]=(byte)'1';
Array.Copy(cs,0,b,2*1,cs.Length);
Array.Copy(id,0,b,2*1+cs.Length,id.Length);

Array.Copy(sn,0,b,2*1+cs.Length+id.Length,
sn.Length);

Array.Copy(p.Data,0,b,
2*1+cs.Length+id.Length+sn.Length,
p.Data.Length);

}
private void fillICMP(ICMP_pack p, ushort id, ushort seqNr,
int pingBytes)
{
p.id=id;
p.seqNr=seqNr;
p.Data = new byte[32];
}
private ushort cSum(byte[] arBytes)
{
ulong chksum = 0;
int nSize = arBytes.Length;
int i = 0;
while(nSize > 1)
{
chksum += (ulong)((((ushort)arBytes
[i+1]) << 8) + (ushort)arBytes[i]);
nSize--;
nSize--;
i++;
i++;
}

if(nSize > 0)
{
chksum += arBytes[i];
}

chksum = (chksum >> 16) + (chksum & 0xffff);
chksum += (chksum >> 16);
ushort result = (ushort)(~chksum);
return result;
}
}
public class ICMP_pack
{
public byte Type = 8;
public byte SubCode = 0;
public ushort checksum;
public ushort id;
public ushort seqNr;
public byte[] Data;
}
}


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
774
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies