有哪位有过udpsocket经历的同仁,希望不吝赐教啊,我想知道udpsocket的连接和传输过程,要有代码提示的,最起码要能让人看出确实连上并发送了东西过去,谢谢,50分!
解决方案 »
- EXE转DLL,出现access violation at address之类的错误
- 在一串字符中取值后加以处理
- Delphi中如何替换运行之中的文件实现程序的自动更新
- listbox操作问题,怎样得到listbox上某个项有多少个?
- 急!!谁知道用BDE连接sqlserver数据库需要用到哪些端口?
- 在LISTVIEW中如何放一个时间控件?
- 问个简单的问题,怎么给做好的delphi程序做个安装程序,delphi自带的有吗,在哪里,没有的话,怎么安装
- 两个单独的程序要传递数据?要求快速简单,请问用共享内存区域可以吗?怎么做呢?或者还有什么方法?
- qq的离线消息功能是怎么做出来的,我看了几天也没搞定,能说详细点吗,
- 怎么给得到的网页元素,绑定一个onmousedown事件?
- 如何打开一个TXT文件?
- 菜鸟问题:用installshield express3.03给安装界面的左上角设置内容?这个属性我找不到。
Client端
var
c_addr:sockaddr_in;
s:integer;
_sndBuf:array[0..9];
BROADCAST: boolean;begin
s:=socket(af_inet,sock_dgram,ipproto_ip);
try
c_addr.sin_family:=af_inet;
c_addr.sin_port:=8080;
c_addr.sin_addr.S_addr:=inet_addr('192.168.0.11'));
sendto(s,@_sndBuf[0],sizeof(_sndBuf),0,c_addr,sizeof(sockaddr_in));
finally
closesocket(s);
end;
end;
Server端 var Recvsocket:integer;
var
_WSAdata:TWSADATA;
addr:sockaddr_in;
begin
wsastartup(makeword(2,2),_WSAdata);
Recvsocket:=socket(af_inet,SOCK_DGRAM,IPPROTO_IP);
addr.sin_family:=af_inet;
addr.sin_port:=8080;
addr.sin_addr.S_addr:=htonl(INADDR_ANY);
bind(Recvsocket,addr,sizeof(sockaddr_in));
wsaasyncselect(Recvsocket,self.Handle,WM_RECV,FD_READ);
end;
procedure TFrmMain.RecvData(var msg: Tmessage);
var
c_addr:sockaddr_in;
_Rcvbuf:array[0..9]of char;
begin
addr_len:=sizeof(sockaddr_in);
if recvfrom(Recvsocket,@_Rcvbuf[0],sizeof(_Rcvbuf),0,_sockaddr,addr_len)<> 0 then
begin
memo1.lines.add(_Rcvbuf);
end;
end;
http://expert.csdn.net/Expert/topic/1987/1987161.xml?temp=.3724024