var hsocket:integer;sadd:TSockAddrIn;
bf:array[0..29] of char;
initdata:wsadata;wbb,intreturen:integer;
begin
wbb:=makeword(2,0);
if WSAStartup(wbb,initdata)=0 then showmessage('ok');
hsocket:=socket(af_inet,SOCK_DGRAM ,IPPROTO_UDP);
sadd.sin_port:=6004;
sadd.sin_family:=af_inet;
sadd.sin_addr:=in_addr(inet_addr('127.0.0.1'));
strpcopy(bf,edit1.Text );
intreturen:=sendto(hsocket,bf,30,MSG_OOB,sadd,sizeof(sadd));
wsacleanup;
end;为什么我的程序发不信息,怎样才能将信息发出

解决方案 »

  1.   

    MSG_OOB 不要用OOB...
    这是TCP 用的 Send out-of-band data (stream-style socket such as SOCK_STREAM only. Also see DECnet Out-Of-band data for a discussion of this topic.)用0
      

  2.   

    if WSAStartup(wbb,initdata)=0 then showmessage('ok');你这个判断 还不太对哦应该位 如果初始化失败的话 提示不支持 然后退出
      

  3.   

    问题找到了
    sadd.sin_port:=htons(6004);
    不过用其他的程序接收时第一个字符少了
    即发送'1234'
    接收只有'234'
      

  4.   

    我只是试一试api掉用,所以写起来很随便,主要是增加对网络编程的了解