免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7045 | 回复: 7
打印 上一主题 下一主题

[C++] 求助 c++客户端,java服务器端 udp通信 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-08 21:46 |只看该作者 |倒序浏览
谢谢各位关注,已搞定,解决方案请看6楼

各位大侠,小弟要写一个用c++ 发udp包到java服务器端,无奈写了没法通信,不知什么原因。
那位能给一个例子(包括两个程序udpclient.cpp ,udpserver.java)啊,谢谢。

最简单的就行。
再次拜谢!!

[ 本帖最后由 ghostvic 于 2008-1-9 11:08 编辑 ]

论坛徽章:
27
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之福建
日期:2023-03-31 15:54:2315-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:13
2 [报告]
发表于 2008-01-08 22:41 |只看该作者
我也很想要,最好就是发送一个“hello,world!"就可以。。。

看网络编程的书太复杂,第一个例子要都是“hello,world!" 多和谐啊~
lyyx 该用户已被删除
3 [报告]
发表于 2008-01-08 22:54 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2008-01-08 22:55 |只看该作者
用抓包工具抓下

论坛徽章:
0
5 [报告]
发表于 2008-01-08 23:14 |只看该作者
这有啥难的啊, 你最好贴你的程序出来, 我可以帮你看看, c/c++ java 我都懂点

论坛徽章:
0
6 [报告]
发表于 2008-01-09 10:30 |只看该作者

[结帖]c++, java udp通信

谢谢以上各位的捧场。感谢!
今天早上我改了一下,然后程序就通了。贴上来和大家共勉。
client:  udpc.c                         server:udpserver.java

执行顺序:开两个终端A,B
1。分别将A,B的路径cd到程序所在目录
2。A中执行  
      #javac udpserver.java
      #java udpserver
这样,java的服务器就启动了
3。B中执行
      #gcc -o udpc udpc.c
      #./udpc
这样,c的客户端就启动了。

最后结果:
server端:
[root@ns c_java_udp]# javac udpserver.java
[root@ns c_java_udp]# java udpserver
Sending string!Client to Server!


client端:
[root@ns c_java_udp]# gcc -o udpc udpc.c
[root@ns c_java_udp]# ./udpc
send string success
[root@ns c_java_udp]#

下面是代码:

server:
========================================================================
///////////////////////////////////////////
//1.#javac udpserver.java
//2.#java udpserver
//////////////////////////////////////////
import java.io.*;
import java.lang.*;
import java.net.*;
public class udpserver
{
    private DatagramSocket server_sock;
    private DatagramPacket pac;
    private byte recv_buffer[];
    private String recv_string;
    public udpserver()
    {

        Init();

    }

    public void Init()
    {

        try
        {
            server_sock=new DatagramSocket(1234);
            recv_buffer=new byte[1024];
            pac=new DatagramPacket(recv_buffer,recv_buffer.length);
            recv_string="";
            int i=0;
            while(true)//无数据,则循环
            {
                server_sock.receive(pac);
                i=pac.getLength();
                //接收数据
               recv_string=new String(recv_buffer,0,pac.getLength());
                System.out.println(recv_string);
                 
              }

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

    public static void main(String args[])
    {
        new udpserver();
    }

}
===================================================================


client: udpc.c
===================================================================
///////////////////////////////////////////
//1.#gcc -o udpc udpc.c
//2#./udpc
///////////////////////////////////////////
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <unistd.h>

int main(int argc, char **argv)

{

        int fd;
       
        struct sockaddr_in address;
       
        int address_len;
       
        char line[100] = "Sending string:Client to Server!";
       
        int n;

       
       
        //建立套接口
       
        fd = socket(AF_INET, SOCK_DGRAM, 0);//AF_INET和SOCK_DGRAM的组合对应UDP协议

       
       
        //联接
       
        bzero(&address, sizeof(address));
       
        address.sin_family = AF_INET;
       
        address.sin_addr.s_addr = inet_addr("127.0.0.1");
       
        address.sin_port = htons(1234);
       
        address_len = sizeof(address);

       
       
        //发送数据
       
        sendto(fd, line, strlen(line)+1, 0,(struct sockaddr *)&address, sizeof(address));

        printf("send string success\n");
}

论坛徽章:
0
7 [报告]
发表于 2008-01-09 10:39 |只看该作者
恭喜楼主!

论坛徽章:
0
8 [报告]
发表于 2008-01-09 11:00 |只看该作者

回复 #7 srdrm 的帖子

谢谢哈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP