求教~哪位大虾能给我一个java 做客户端 ,c 语言写服务器端的例子吗?udp 或 tcp都 行~~~

fiendishman 2005-08-25 07:36:02
试了几个例子,c和java的代码都没问题,但是就是connect refused,哪位大虾 来指点一下.
如果能给个例子就更好了.
不胜感激~~~~~~~~
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fiendishman 2005-08-26
  • 打赏
  • 举报
回复
高人呢,一语中的,谢谢
kingfish 2005-08-25
  • 打赏
  • 举报
回复
java端没问题, c端有个小问题,你试试kpeer.sin_port=htons(8848);
fiendishman 2005-08-25
  • 打赏
  • 举报
回复
java 里少写了一句,在DatagramPacket dgp = new DatagramPacket (buffer,buffer.length,ia,8848);下面还有一句
s.send (dgp);
不知道哪儿有问题~~~~~~

fiendishman 2005-08-25
  • 打赏
  • 举报
回复
代码是这样的,因为是在linux下的
c部分:
main()
{
int skfd;
char buf[128];
int len;
struct sockaddr_in kpeer;
memset(&kpeer, 0, sizeof(kpeer));
kpeer.sin_family = AF_INET;
kpeer.sin_addr.s_addr=INADDR_ANY;
kpeer.sin_port=8848;

skfd=socket(PF_INET,SOCK_DGRAM,0);
if(skfd<0)
{
printf("socket create failed\n");
exit(1);
}
if(bind(skfd,(struct sockaddr *)&kpeer,sizeof(kpeer))<0)
printf("1\n");
while(1)
{
len=sizeof(kpeer);
if(recvfrom(skfd,buf,sizeof(buf),0,(struct sockaddr *)&kpeer,&len)<0)
printf("2\n");
else
printf("%s\n",buf);
}
}

java 部分:
import java.io.*;
import java.net.*;

class Sender2
{
public static void main (String [] args)
{
String host = "192.168.1.100";



if (args.length == 1)
host = args [0];

DatagramSocket s = null;

try
{


s = new DatagramSocket ();



byte [] buffer;
buffer = new String ("Send me a datagram").getBytes ();


InetAddress ia = InetAddress.getByName (host);



DatagramPacket dgp = new DatagramPacket (buffer,buffer.length,ia,8848);



}
catch (IOException e)
{
System.out.println (e.toString ());
}
finally
{
if (s != null)
s.close ();
}
}
}
kingfish 2005-08-25
  • 打赏
  • 举报
回复
//connect refused
可能是ip或端口问题, 你可以把代码贴出来看看

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧