Page 1 of 2

Hope everyone helps me!

Posted: Thu May 03, 2007 9:21 pm
by TangLuQing
Hope everyone helps me to seek wrong , The problem is there .
Thank everyone!


sendto_() Return "-1"

WSAGetLastError_() Return "10022"

Code: Select all

Structure IP_HEADER
h_verlen.b
tos.b
total_len.w
ident.w
frag_and_flags.w
ttl.b
proto.b
checksum.w
sourceip.l
destip.l
EndStructure

Structure UDP_HEADER
sourceport.w
destport.w
udp_length.w
udp_checksum.w
EndStructure



Procedure.l checksum(*buffer,size.l)
While(size>1)
  MoveMemory(*buffer,@val.l,2)
  cksum.l=cksum.l+val
  *buffer=*buffer+2  
  size=size-2
Wend
If(size)
  MoveMemory(*buffer,@val.l,1)
  cksum=cksum+val
EndIf
cksum=(cksum>>16)+(cksum & $FFFF)
cksum=cksum+(cksum>>16)
ProcedureReturn ~cksum
EndProcedure

Procedure UDP(Ip.s,Port.l)

Define Wsa.WSADATA
Define *Wsa = @Wsa
Define pBuffer.s
Define ipHeader.IP_HEADER
Define udpHeader.UDP_HEADER
Define nBufferSize.l = 1024
Define pSendBuffer.s 
Define iTotalSize.l
Define iUdpCheckSumSize.l = 0
Define *ptr = AllocateMemory(nBufferSize+60)
Define ptr.l
Define SendSocket.l
Define Flag.l = 1
Define addr_in.SOCKADDR_IN


If WSAStartup_($101, *wsa) <> 0
   ProcedureReturn #Null
EndIf   

SendSocket = SOCKET_(#AF_INET,#SOCK_RAW,#IPPROTO_UDP) 
If SendSocket = #INVALID_SOCKET
   ProcedureReturn #Null
EndIf

#IP_HDRINCL = 2

If setsockopt_(SendSocket,#IPPROTO_IP,#IP_HDRINCL,@Flag,SizeOf(Flag)) = #SOCKET_ERROR
   ProcedureReturn #Null
EndIf




iTotalSize = SizeOf(ipHeader) + SizeOf(udpHeader)+ nBufferSize
ipHeader\h_verlen  = (4<<4)|(SizeOf(IP_HEADER)/4)
ipHeader\tos       = 0                             
ipHeader\total_len = htons_(iTotalSize)            
ipHeader\ident     = 0
ipHeader\frag_and_flags = 0                        
ipHeader\ttl       = 128                           
ipHeader\proto     = #IPPROTO_UDP                  
ipHeader\checksum  = 0                             
ipHeader\destIP    = inet_addr_(Ip)                
ipHeader\sourceIP  = inet_addr_("192.167.1.2")    




udpHeader\sourceport   = htons_(5444)
udpHeader\destport     = htons_(Port)                            
udpHeader\udp_length   = htons_(SizeOf(udpHeader) + nBufferSize) 
udpHeader\udp_checksum = 0                                       

 

ZeroMemory_(*ptr,nBufferSize + 60)
ptr = *ptr

MoveMemory(@ipheader\sourceip,ptr,SizeOf(ipheader\sourceip))
ptr = ptr + SizeOf(ipHeader\sourceIP)
iUdpCheckSumSize = iUdpCheckSumSize +  SizeOf(ipHeader\sourceIP)

MoveMemory(@ipHeader\destIP,ptr,SizeOf(ipHeader\destIP))
ptr = ptr + SizeOf(ipHeader\destIP)
iUdpCheckSumSize = iUdpCheckSumSize + SizeOf(ipHeader\destIP)

ptr = ptr + 1
iUdpCheckSumSize = iUdpCheckSumSize + 1

MoveMemory(@ipHeader\proto,ptr,SizeOf(ipHeader\proto))
ptr = ptr + SizeOf(ipHeader\proto)
iUdpCheckSumSize = iUdpCheckSumSize + SizeOf(ipHeader\proto)

MoveMemory(@udpHeader\udp_length,ptr,SizeOf(udpHeader\udp_length))
ptr = ptr + SizeOf(udpHeader\udp_length)
iUdpCheckSumSize = iUdpCheckSumSize + SizeOf(udpHeader\udp_length)

MoveMemory(@udpHeader,ptr,SizeOf(udpHeader))
ptr = ptr + SizeOf(udpHeader)
iUdpCheckSumSize = iUdpCheckSumSize + SizeOf(udpHeader)

pBuffer = Space(1024)
FillMemory_(@pBuffer,nBufferSize,65)
MoveMemory(@pBuffer,ptr,nBufferSize)
iUdpCheckSumSize = iUdpCheckSumSize + nBufferSize

udpHeader\udp_checksum = checksum(*ptr,iUdpCheckSumSize)
MoveMemory(@ipHeader,*ptr,SizeOf(ipHeader))
MoveMemory(@udpHeader,*ptr + SizeOf(ipHeader),SizeOf(udpHeader))
MoveMemory(@pBuffer,*ptr +SizeOf(ipHeader) + SizeOf(udpHeader),nBufferSize)



addr_in\sin_family = #AF_INET
addr_in\sin_port   = htons_(Port)
addr_in\sin_addr   = inet_addr_(Ip)

Debug sendto_(SendSocket,*ptr,iTotalSize,0,@addr_in, SizeOf(addr_in))
Debug WSAGetLastError_()
closesocket_(SendSocket)

EndProcedure


UDP("192.168.1.3",1228)

Posted: Thu May 03, 2007 9:34 pm
by netmaestro
A rose, by any other name...

Posted: Thu May 03, 2007 9:36 pm
by TangLuQing
I just want to seek wrong

Posted: Thu May 03, 2007 9:50 pm
by LuCiFeR[SD]
Every rose has it's thorn :P

Posted: Thu May 03, 2007 9:51 pm
by Fluid Byte
May I ask what kind of programm you are making? Just curious...

Posted: Thu May 03, 2007 9:56 pm
by TangLuQing
UDP Send out DATA

Posted: Thu May 03, 2007 9:56 pm
by Num3
Fluid Byte wrote:May I ask what kind of programm you are making? Just curious...
It's something for the kids :lol:

Posted: Thu May 03, 2007 10:01 pm
by TangLuQing
the nobody know the problem? :?: [/quote]

Posted: Thu May 03, 2007 10:22 pm
by LuCiFeR[SD]
TangLuQing wrote:the nobody know the problem? :?:
how can I put this simply... nobody CARES about your problem!

We simply do not trust you!

Unfortunately for you, everyone with even a remotely chinese sounding name or obvious translation software usage will just get EXACTLY the same sarcastic responses as you have just recieved.

Now... Over there, by the flower pot... do you see that door? Walk through it and close it quietly behind you.

Posted: Thu May 03, 2007 10:23 pm
by Brice Manuel
TangLuQing wrote:UDP Send out DATA
Why Data? Why not send out Geordi or Riker or Worf :?:

Posted: Thu May 03, 2007 10:24 pm
by Fluid Byte
TangLuQing wrote:UDP Send out DATA
I don't ask what this snippet does but what kind of application you are developing. Image

@Brice Manuel:

By far the cheapest wordplay I have ever heard! Image

Posted: Thu May 03, 2007 10:35 pm
by TangLuQing
Why does nobody help me
:?: :?: :?: :?: :?:

Posted: Thu May 03, 2007 10:37 pm
by LuCiFeR[SD]
TangLuQing wrote:Why does nobody help me
:?: :?: :?: :?: :?:
Because we dont trust you! YES it is that simple :P

Posted: Thu May 03, 2007 10:40 pm
by TangLuQing
Why No trust me?

Posted: Thu May 03, 2007 10:41 pm
by TangLuQing
Difficult way I am wrong?