精华内容
下载资源
问答
  • IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP). 可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流. - 不需要服务器支持. - 支持文件/文件夹传送 (2.00版以上) - 通讯数据采用 RSA/...
  • - IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP). 可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流. - 不需要服务器支持. - 支持文件/文件夹传送 (2.00版以上) - 通讯数据采用 RSA...
  • 该系统面向每位用户提供网上注册、登录、好友搜索添加、即时聊天、传输文件、实时语音等一系列功能,是网络聊天可靠平台。 IM(Instant Message)功能:用户登录后能进行实时多方点到点短消息通信,如聊天。 消息...
  • 随着网络通信技术和计算机技术进一步...该系统按照软件工程思想采用面向对象和模块化设计方法设计,其中采用了网络通信技术、数据库技术、多线程技术等计算机技术,实现了网络通信的基本功能,具有通信即时特点。
  • P2P即时通信系统。它可以实现互联网上任意两台主 机之间直接连接,不仅可以随时知晓对方在线与 否,而且交流双方通讯完全是点对点进行。不依赖 服务器性能和网络带宽。它为开发更多P2P应用 提供了基础。由于...
  • 一个简单的即时且安全的本地消息传递应用程序。 她是用Java开发的 关键字:Java软件工程,面向对象的编程,人机界面,网络套接字编程,IT安全性,Mysql数据库管理。 平台:Netbeans,Wampserver。 应用程序的...
  • 从QQ聊天软件开始,到现在微信音频对讲,现在即时通讯类产品开发越来越多,不过视频类即时聊天还没有形成向腾讯这样大巨头。最近本人也在学习Android平台下跨平台视频聊天,音视频通信开发虽然网上有很多开源...
    从QQ的聊天软件开始,到现在微信的音频对讲,现在即时通讯类产品开发越来越多,不过视频类即时聊天还没有形成向腾讯这样的大巨头。最近本人也在学习Android平台下跨平台视频聊天,音视频通信开发虽然网上有很多开源项目供我们参考学习,但音视频效果很一般,还有很多不稳定的因素,毕竟是开源嘛。在国内我找到了一个比较好音视频通信解决方案(点击下载官方demo),该案例提供了纯Java语言接口供我们调用,随后我参照官方android demo程序和开发文档并结合自己的见解写了一个android音视频通信软件,200行以内代码就搞定了(难以相信吧)。其实我只是调用其相关API即可实现。以下是我自己写的Java代码,以备大家互相学习:
    1. /** 
    2.  * Android视频聊天  
    3.  * 1、初始化SDK 2、连接服务器、 3、用户登录;4、进入房间;5、打开本地视频;6、请求对方视频 
    4.  */ 
    5. public class VideoChatActivity extends Activity implements AnyChatBaseEvent 
    6. { 
    7.     private AnyChatCoreSDK anychat;         // 核心SDK 
    8.     private SurfaceView remoteSurfaceView;  // 对方视频 
    9.     private SurfaceView localSurfaceView;   // 本地视频 
    10.     private ConfigEntity configEntity; 
    11.     private boolean bSelfVideoOpened = false;   // 本地视频是否已打开 
    12.     private boolean bOtherVideoOpened = false;  // 对方视频是否已打开 
    13.     private TimerTask mTimerTask;               // 定时器 
    14.     private Timer mTimer = new Timer(true); 
    15.     private Handler handler;                    // 用Handler来不间断刷新即时视频 
    16.     private List<String> userlist = new ArrayList<String>();//保存在线用户列表 
    17.     private int userid;                         // 用户ID 
    18.     @Override 
    19.     public void onCreate(Bundle savedInstanceState) 
    20.     { 
    21.         super.onCreate(savedInstanceState); 
    22.         setContentView(R.layout.activity_video_chat); 
    23.         remoteSurfaceView = (SurfaceView) findViewById(R.id.surface_remote); 
    24.         localSurfaceView = (SurfaceView) findViewById(R.id.surface_local); 
    25.         configEntity = ConfigService.LoadConfig(this);//加载视频通话设置 
    26.         loginSystem();// 初始化SDK 连接服务器 
    27.         mTimerTask = new TimerTask(){ 
    28.             public void run(){ 
    29.                 Message mesasge = new Message(); 
    30.                 handler.sendMessage(mesasge); 
    31.             } 
    32.         }; 
    33.         mTimer.schedule(mTimerTask, 1000, 100); 
    34.         handler = new Handler(){ 
    35.             @Override 
    36.             public void handleMessage(Message msg){ 
    37.                 VideoChat();// 不间断显示即时视频通话画面 
    38.                 super.handleMessage(msg); 
    39.             } 
    40.         }; 
    41.     } 
    42.     // 初始化SDK 连接服务器 
    43.     private void loginSystem(){ 
    44.         if (anychat == null){ 
    45.             anychat = new AnyChatCoreSDK(); 
    46.             anychat.SetBaseEvent(this);         // 设置基本事件回调函数 
    47.             if (configEntity.useARMv6Lib != 0)  // 使用ARMv6指令集 
    48.                 anychat.SetSDKOptionInt(AnyChatDefine. 
    49.                         BRAC_SO_CORESDK_USEARMV6LIB, 1); 
    50.             anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0); // 初始化SDK 
    51.         } 
    52.         anychat.Connect("demo.anychat.cn", 8906);// 连接服务器 
    53.     } 
    54.     // 显示即时视频通话画面 
    55.     public void VideoChat(){ 
    56.         if (!bOtherVideoOpened){ 
    57.             if (anychat.GetCameraState(userid) == 2 
    58.                     && anychat.GetUserVideoWidth(userid) != 0){ 
    59.                 SurfaceHolder holder = remoteSurfaceView.getHolder(); 
    60.                 holder.setFormat(PixelFormat.RGB_565); 
    61.                 holder.setFixedSize(anychat.GetUserVideoWidth(userid), 
    62.                         anychat.GetUserVideoHeight(userid)); 
    63.                 Surface s = holder.getSurface();            // 获得视频画面 
    64.                 anychat.SetVideoPos(userid, s, 0, 0, 0, 0); // 调用API显示视频画面 
    65.                 bOtherVideoOpened = true; 
    66.             } 
    67.         } 
    68.         if (!bSelfVideoOpened){ 
    69.             if (anychat.GetCameraState(-1) == 2 
    70.                     && anychat.GetUserVideoWidth(-1) != 0){ 
    71.                 SurfaceHolder holder = localSurfaceView.getHolder(); 
    72.                 holder.setFormat(PixelFormat.RGB_565); 
    73.                 holder.setFixedSize(anychat.GetUserVideoWidth(-1), 
    74.                         anychat.GetUserVideoHeight(-1)); 
    75.                 Surface s = holder.getSurface(); 
    76.                 anychat.SetVideoPos(-1, s, 0, 0, 0, 0); 
    77.                 bSelfVideoOpened = true; 
    78.             } 
    79.         } 
    80.     } 
    81.     public void OnAnyChatConnectMessage(boolean bSuccess){ 
    82.         if (!bSuccess){ 
    83.             Toast.makeText(VideoChatActivity.this, "连接服务器失败,自动重连,请稍后...", Toast.LENGTH_SHORT).show(); 
    84.         } 
    85.         anychat.Login("android", "");               // 服务器连接成功 用户登录 
    86.     } 
    87.     public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode){ 
    88.         if (dwErrorCode == 0) { 
    89.             Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show(); 
    90.             anychat.EnterRoom(1, "");               // 用户登录成功 进入房间 
    91.             ApplyVideoConfig(); 
    92.         } else { 
    93.             Toast.makeText(this, "登录失败,错误代码:" + dwErrorCode, Toast.LENGTH_SHORT).show(); 
    94.         } 
    95.     } 
    96.     public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode){ 
    97.         if (dwErrorCode == 0) {                     // 进入房间成功  打开本地音视频 
    98.             Toast.makeText(this, "进入房间成功", Toast.LENGTH_SHORT).show(); 
    99.             anychat.UserCameraControl(-1, 1);       // 打开本地视频 
    100.             anychat.UserSpeakControl(-1, 1);        // 打开本地音频 
    101.         } else { 
    102.             Toast.makeText(this, "进入房间失败,错误代码:" + dwErrorCode, Toast.LENGTH_SHORT).show(); 
    103.         } 
    104.     } 
    105.     public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId){ 
    106.         if (dwRoomId == 1){ 
    107.             int user[] = anychat.GetOnlineUser(); 
    108.             if (user.length != 0){ 
    109.                 for (int i = 0; i < user.length; i++){ 
    110.                     userlist.add(user[i]+""); 
    111.                 } 
    112.                 String temp =userlist.get(0); 
    113.                 userid = Integer.parseInt(temp); 
    114.                 anychat.UserCameraControl(userid, 1);// 请求用户视频 
    115.                 anychat.UserSpeakControl(userid, 1); // 请求用户音频 
    116.             } 
    117.             else { 
    118.                 Toast.makeText(VideoChatActivity.this, "当前没有在线用户", Toast.LENGTH_SHORT).show(); 
    119.             } 
    120.         } 
    121.     } 
    122.     public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter){ 
    123.         if (bEnter) {//新用户进入房间 
    124.             userlist.add(dwUserId+""); 
    125.         } 
    126.         else {       //用户离开房间 
    127.             if (dwUserId == userid) 
    128.             { 
    129.                 Toast.makeText(VideoChatActivity.this, "视频用户已下线", Toast.LENGTH_SHORT).show(); 
    130.                 anychat.UserCameraControl(userid, 0);// 关闭用户视频 
    131.                 anychat.UserSpeakControl(userid, 0); // 关闭用户音频 
    132.                 userlist.remove(userid+"");          //移除该用户 
    133.                 if (userlist.size() != 0) 
    134.                 { 
    135.                     String temp =userlist.get(0); 
    136.                     userid = Integer.parseInt(temp); 
    137.                     anychat.UserCameraControl(userid, 1);// 请求其他用户视频 
    138.                     anychat.UserSpeakControl(userid, 1); // 请求其他用户音频 
    139.                 } 
    140.             } 
    141.             else { 
    142.                 userlist.remove(dwUserId+"");&nbsp;&nbsp;&nbsp; //移除该用户 
    143.             } 
    144.         } 
    145.     } 
    146.     public void OnAnyChatLinkCloseMessage(int dwErrorCode){ 
    147.         Toast.makeText(VideoChatActivity.this, "连接关闭,error:" + dwErrorCode, Toast.LENGTH_SHORT).show(); 
    148.     } 
    149.     @Override 
    150.     protected void onDestroy(){ //程序退出  
    151.         anychat.LeaveRoom(-1);  //离开房间  
    152.         anychat.Logout();       //注销登录  
    153.         anychat.Release();      //释放资源 
    154.         mTimer.cancel(); 
    155.         super.onDestroy(); 
    156.     } 
    157.     // 根据配置文件配置视频参数 
    158.     private void ApplyVideoConfig(){ 
    159.         if (configEntity.configMode == 1) // 自定义视频参数配置 
    160.         { 
    161.             // 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式) 
    162.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL,configEntity.videoBitrate); 
    163.             if (configEntity.videoBitrate == 0) 
    164.             { 
    165.                 // 设置本地视频编码的质量 
    166.                 anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL,configEntity.videoQuality); 
    167.             } 
    168.             // 设置本地视频编码的帧率 
    169.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL,configEntity.videoFps); 
    170.             // 设置本地视频编码的关键帧间隔 
    171.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL,configEntity.videoFps * 4); 
    172.             // 设置本地视频采集分辨率 
    173.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL,configEntity.resolution_width); 
    174.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL,configEntity.resolution_height); 
    175.             // 设置视频编码预设参数(值越大,编码质量越高,占用CPU资源也会越高) 
    176.             anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL,configEntity.videoPreset); 
    177.         } 
    178.         // 让视频参数生效 
    179.         anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM,configEntity.configMode); 
    180.         // P2P设置 
    181.         anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC,configEntity.enableP2P); 
    182.         // 本地视频Overlay模式设置 
    183.         anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY,configEntity.videoOverlay); 
    184.         // 回音消除设置 
    185.         anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL,configEntity.enableAEC); 
    186.         // 平台硬件编码设置 
    187.         anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC,configEntity.useHWCodec); 
    188.         // 视频旋转模式设置 
    189.         


    展开全文
  • IPMsg 是一款局域网内即时通信软件, 基于TCP/IP(UDP). 可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流. - 不需要服务器支持. - 支持文件/文件夹传送 (2.00版以上) - 通讯数据采用 RSA/...
  • 飞鸽传书(IP Messenger,简为IPMsg)是一个小巧方便的即时通信软件,它适合用于局域网内甚至广域网间进行实时通信和文档共享。特别是在局域网内传送文件/文件夹的速度非常快! IPMsg 是一款局域网内即时通信软件, ...
    飞鸽传书(IP Messenger,简为IPMsg)是一个小巧方便的即时通信软件,它适合用于局域网内甚至广域网间进行实时通信和文档共享。特别是在局域网内传送文件/文件夹的速度非常快!  
    IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP).
    可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流.
    不需要服务器支持.
    支持文件/文件夹的传送 (2.00版以上)
    通讯数据采用 RSA/Blofish 加密 (2.00版以上)
    十分小巧, 简单易用, 而且你可以完全免费使用它
    目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME,Java 等, 并且公开源代码。

    本文演示了如何使用Java的net包,向IPMSG客户端发送消息。

    IPMSG Command 常量定义如下:

    1 /*========== Constant Value ==========*/
    2 public static final long IPMSG_COMMASK = 0x000000ff;
    3 public static final long IPMSG_OPTMASK = 0xffffff00;
    4 public static final long IPMSG_NOOPERATION = 0x00000000;
    5 public static final long IPMSG_BR_ENTRY = 0x00000001;
    6 public static final long IPMSG_BR_EXIT = 0x00000002;
    7 public static final long IPMSG_ANSENTRY = 0x00000003;
    8 public static final long IPMSG_BR_ABSENCE = 0x00000004;
    9
    10
    11
    12 public static final long IPMSG_BR_ISGETLIST = 0x00000018;
    13 public static final long IPMSG_OKGETLIST = 0x00000015;
    14 public static final long IPMSG_GETLIST = 0x00000016;
    15 public static final long IPMSG_ANSLIST = 0x00000017;
    16
    17 public static final long IPMSG_SENDMSG = 0x00000020;
    18 public static final long IPMSG_RECVMSG = 0x00000021;
    19
    20 public static final long IPMSG_READMSG = 0x00000030;
    21 public static final long IPMSG_DELMSG = 0x00000031;
    22
    23 public static final long IPMSG_GETINFO = 0x00000040;
    24 public static final long IPMSG_SENDINFO = 0x00000041;
    25
    26 // other opt
    27 public static final long IPMSG_ABSENCEOPT = 0x00000100;
    28 public static final long IPMSG_SERVEROPT = 0x00000200;
    29 public static final long IPMSG_DIALUPOPT = 0x00010000;
    30
    31 // send opt
    32 public static final long IPMSG_SENDCHECKOPT = 0x00000100;
    33 public static final long IPMSG_SECRETOPT = 0x00000200;
    34 public static final long IPMSG_BROADCASTOPT = 0x00000400;
    35 public static final long IPMSG_MULTICASTOPT = 0x00000800;
    36 public static final long IPMSG_NOPOPUPOPT = 0x00001000;
    37 public static final long IPMSG_AUTORETOPT = 0x00002000;
    38 public static final long IPMSG_RETRYOPT = 0x00004000;
    39 public static final long IPMSG_PASSWORDOPT = 0x00008000;
    40 public static final long IPMSG_NOLOGOPT = 0x00020000;
    41 public static final long IPMSG_NEWMUTIOPT = 0x00040000;
    42
    43 public static final int MAXBUF = 8192;
    44 /*========== end ==========*/
    IPMSG收发数据包的格式(一行):
    1 version(IPMSG版本):no(消息编号,可以用系统时间):user(发送消息的用户名):host(发送消息的主机名):command(上述 Command 常量,可以用 | 组合多个值):msg(消息内容)
    示例(向IPMSG发送消息,需要先打开对方的IPMSG):
    1 import java.io.IOException;
    2 import java.net.DatagramPacket;
    3 import java.net.DatagramSocket;
    4 import java.net.InetAddress;
    5 import java.net.SocketException;
    6 import java.net.UnknownHostException;
    7 import java.util.Date;
    8
    9 /**
    10 * @author 乱 7 8 糟 http://blog.csdn.net/comstep
    11 */
    12 public class TestIPMSG
    13 {
    14 public static void main(String[] args)
    15 {
    16 DatagramSocket socket;
    17 InetAddress address;
    18
    19 long IPMSG_SENDMSG = 0x00000020;
    20
    21 String SENDER = "乱 7 8 糟";
    22 String HOST = "Localhost";
    23 String MSG_CONTENT = "Hello World!";
    24
    25 try
    26 {
    27 socket = new DatagramSocket();
    28 address = InetAddress.getByName("192.168.1.20");// 发送给消息的地址
    29
    30 /**
    31 * IPMSG收发数据包的格式(一行):
    32 *
    33 * version(IPMSG版本):no(消息编号,可以用系统时间):user(发送消息的用户名):
    34 * host(发送消息的主机名):command(上述 Command 常量,可以用 | 组合多个值):
    35 * msg(消息内容)
    36 *
    37 */
    38 byte[] buffer = ("1:" + new Date().getTime() + ":" + SENDER + ":" + HOST
    39 + ":" + IPMSG_SENDMSG + ":" + MSG_CONTENT).getBytes();
    40
    41 DatagramPacket packet = new DatagramPacket(buffer, buffer.length,
    42 address, 2425);
    43 socket.send(packet); // 发送报文
    44
    45 packet = new DatagramPacket(buffer, buffer.length);
    46 socket.receive(packet);// 接收回应
    47
    48 String message = new String(packet.getData()); // 得到报文信息
    49
    50 System.out.println(message); // 显示对方返回的信息
    51 }
    52 catch (UnknownHostException e)
    53 {
    54 e.printStackTrace();
    55 }
    56 catch (SocketException e)
    57 {
    58 e.printStackTrace();
    59 }
    60
    61 catch (IOException e)
    62 {
    63 e.printStackTrace();
    64 }
    65
    66 }
    67
    68 }
    展开全文
  • 现代通信网课设任务书 关于简单聊天软件 java实现 PC平台即时通信程序实现,登录界面以及聊天通信界面展示;,登录界面以及聊天通信界面展示;
  • 1. 软件简介- IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP).可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流.- 不需要服务器支持.- 支持文件/文件夹传送 (2.00版以上)- 通讯数据采用 RSA/...

    904b650e0f0ec0d902619c35f5efa113.png

    1. 软件简介

    - IPMsg 是一款局域网内即时通信软件, 基于 TCP/IP(UDP).

    可运行于多种操作平台(Win/Mac/UNIX/Java), 并实现跨平台信息交流.

    - 不需要服务器支持.

    - 支持文件/文件夹的传送 (2.00版以上)

    - 通讯数据采用 RSA/Blofish 加密 (2.00版以上)

    - 十分小巧, 简单易用, 而且你可以完全免费使用它

    - 目前已有的版本包括: Win32, Win16, MacOS, MacOSX, X11, GTK, GNOME,

    Java 等, 并且公开源代码.

    3. 系统要求

    Microsoft Windows 95/98/Me/NT4.0/2000/XP/2003

    95/98/NT4.0 ... 要求 comctl32.dll(公共控件) 的版本为 5.x 或更高.

    (如果你安装的 IE 是 5.x 或更高版本, 那么就不必担心这个问题了)

    注意: Windows 3.1(和 NT3.5x), 请使用 IP Messenger for Win16.

    --------------------------------------------------------------------------------

    4. 使用说明

    < 安装/卸载 >

    执行 setup.exe 你可以将 IPMsg 安装到指定目录, 或者重新注册到启动组.

    如果需要删除 IPMsg, 请先从控制面板中卸载, 再手动删除 IPMsg 目录.

    < 系统托盘区图标 >

    左键双击图标, 即可打开发送消息窗口.

    右键点击图标, 可进入 [服务设置], [离开] 等.

    < 发送消息窗口 >

    - 发送消息时, 若勾选了 [封装],  则接收者要先打开信封才能看到消息,

    如果你还勾选了 [上锁], 则接收者在打开信封时还需要输入密码.

    (密码是由接收者自己在 [服务设置] 中设置的)

    - 若要发送文件/文件夹, 可直接将文件/文件夹拖入发送消息窗口

    或在发送消息窗口上点击右键, 再选择发送文件或发送文件夹

    - 传送文件/文件夹时, 当接收者还没有保存(下载)文件/文件夹时,

    若发送者关闭或重启了 IPMsg, 则附带的文件信息将被清除,

    接收者将不能继续接收(下载)到此文件.

    - 用户列表前缀符号说明

    ":" 表示用户处于离开模式.

    "|" 表示用户使用的不是 2.0 以上版本的 IPMsg,

    将不支持文件/文件夹的传送, 并且不支持通信数据加密.

    "|"(短线) 表示只支持文件/文件夹的传送.

    - 拖动列表表头标题项可改变其顺序, 并可点击右键选择"保存列表顺序"

    - 在消息输入窗口中, 可使用 Ctrl+Tab 输入制表符 Tab.

    - 在发送消息窗口上点击右键, 可以进入设置显示优先级, 选择工作组,

    搜索用户(Ctrl+F), 传送文件, 传送文件夹, 保存列表顺序, 字体设置,

    窗口大小设置, 固定窗口位置, 列表显示设置.

    - 在用户名上点击右键, 可设置其显示优先级

    优先级按由小到大的顺序排序

    - 通过设置显示优先级, 可将经常联系的用户至于列表顶端,

    或者隐藏不需要联系的用户

    < 接收消息窗口 >

    - 在接收消息窗口上点击右键, 可以进入字体设置,

    窗口大小设置, 固定窗口位置.

    - 接收消息窗口标题栏中的 "+" 或 "-" 表示通信数据使用了加密算法

    "+" 表示 RSA/1024 位, blowfish/128 位加密

    "-" 表示 RSA/512 位, RC2/40 位加密

    - 如果你收到的消息附带了文件, 将会显示出附件按钮.

    点击按钮即可保存文件.

    < 其他 >

    - 如果需要(通过路由器)连接到广域网, 则需要设置广播地址.

    详见广域网设置(广播设置)

    - 其它功能都很容易理解, 你试一试就明白了

    --------------------------------------------------------------------------------

    5. 相关信息

    - 所有的设置信息都保存在注册表的以下位置:

    \\HKEY_CURRENT_USER\Software\HSTools\

    用户密码以不可逆加密方式存储.

    *******************************************************************

    * 如果你忘记了密码, 可以在注册表中将此键值删除                    *

    * \\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr       *

    *******************************************************************

    - 本软件使用的默认端口为 2425

    若仅使用 UDP 协议的端口, 将不能传送文件/文件夹

    (如果安装了防火墙, 则必须打开相应的 TCP 和 UDP 端口)

    - 本软件为自由软件, 你可以随意传播, 但源码使用请参见许可协议.

    - 只有在启动或退出程序, 使用离开模式, 刷新在线用户时 IPMsg 才会进行消息广播.

    - 本软件由 Microsoft Visual C++ 6.0 编译

    --------------------------------------------------------------------------------

    6. 广域网设置(广播设置)

    - 主机号全部为 1 的 IP 地址, 即广播地址

    例如, 连接到一个 C 类子网(即 24 位网络号, 8 位主机号), IP 地址为

    aaa.bbb.ccc.ddd, 其广播地址即为: aaa.bbb.ccc.255

    若对方处于另一个私有子网中, 广播可能无效.

    - 更多问题, 请参阅相关资料或咨询你的网络管理员.

    - 若两台主机的连接经过了多个路由器, 请直接指定对方IP地址

    - 拨号上网用户请勾选 [拨号连接]

    当刷新在线用户列表时, 列表不会被清空

    --------------------------------------------------------------------------------

    7. 补充

    - 启动飞鸽传书前, 你可以指定其运行时使用的端口,

    且可以使用不同的端口打开多个窗口. 用法如下:

    ipmsg.exe 2426 (你可在快捷方式上设置)

    但是你只能与同时也使用该端口的用户通信.

    - 所以你尽可选用你喜欢的端口运行本软件.

    介于 10000 至 60000 可能更安全些.

    你也可以咨询你的网络管理员.

    - 如果有多个网卡(IP), 你可以将飞鸽传书与指定的网卡(IP)进行绑定.

    命令格式如下(你可以在快捷方式上设置):

    ipmsg.exe [端口] /NIC IP地址

    例如:

    C:\>ipmsg.exe /NIC 192.168.10.100

    - 支持命令方式发送消息

    命令格式如下:

    ipmsg.exe [端口] /MSG [/LOG][/SEAL] <主机名或IP地址> <消息>

    例如:

    C:\>ipmsg.exe /MSG /SEAL localhost Hello.

    - 操作技巧.

    1. 隐藏/显示 窗口  Ctrl + D

    2. 按住 Ctrl 键再点 [刷新] 可保持现有用户, 搜索新上线的用户

    3. 打开发送/接收消息窗口  Ctrl + Alt + S / R (需要进行详细设置)

    4. 打开搜索窗口  Ctrl + F

    5. 接收到多个文件, 保存时可勾选 [全部]

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • 使用Java蓝牙无线通讯技术API概述之一蓝牙是一种低成本、短距离无线通信技术。对于那些希望创建个人...为了在Java平台上开发支持蓝牙技术的软件,JCP定义了JSR82标准--Java蓝牙无线技术APIs(JABWT)。在这篇文章中...

    使用Java蓝牙无线通讯技术API概述之一

    蓝牙是一种低成本、短距离的无线通信技术。对于那些希望创建个人局域网(PANs)的人们来说,蓝牙技术已经越来越流行了。每个个人局域网都在独立设备的四周被动态地创建,并且为蜂窝式电话和PDA等设备提供了自动连接和即时共享数据的能力。

    为了在Java平台上开发支持蓝牙技术的软件,JCP定义了JSR82标准--Java蓝牙无线技术APIs(JABWT)。

    在这篇文章中,我将介绍一些关于蓝牙技术的背景,概述一下支持蓝牙技术的MIDlet 应用程序的典型要素,然后介绍给你核心的Java蓝牙APIs。最后我们展示一些代码来演示如何使用这些APIs。

    实际上JSR82定义了两个独立的可选包:核心蓝牙API和对象交换(OBEX)API。这篇文章将对这两个中更为普遍的部分--核心蓝牙包javax.bluetooth进行具体地阐述,而OBEX API(对象交换),我们留到以后去讨论。

    蓝牙无线电技术基于在工业、科学以及医学(ISM)上公用的2.45GHz开放频段,这一频段无需授权并全球通用。当蓝牙设备互相连接时,他们将组成一个微微网(piconet),即以一个主设备和最大7个从设备的形式动态创建网络。蓝牙也支持piconet网之间的连接:当一个piconet中的主设备成为另一个piconet的从设备时,piconet与piconet间将形成桥接。

    蓝牙协议栈提供了一组的高层协议和API以完成发现服务和模拟串行I/O,还有一个关于包分割和重组的低层协议以及多路技术协议和质量服务。蓝牙互操作性profiles--不要与

    J2ME profiles搞混--它是用来描述跨平台互操作性和一致性需求的。

    蓝牙互操作性profiles包括三方面内容:通用访问profile(GAP)定义了设备治理功能性;服务发现应用profiles定义了服务发现方面的内容,串口profiles定义了互操作设备和模拟串口电缆的能力。你可以通过蓝牙规范(Bluetooth specification)学习这些和其它的profiles。蓝牙栈包含一个软件栈来映射一个固件栈(firmware),由图1所示:

    展开全文
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • Java资源包01

    2016-08-31 09:16:25
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包101

    2016-07-13 10:11:08
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包4

    热门讨论 2013-06-28 09:26:54
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包9

    热门讨论 2013-06-28 09:58:55
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java开源包7

    热门讨论 2013-06-28 09:52:16
    Java Remote Desktop 是一个Java 远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 排名算法无环路径项目 ...
  • java调用ipmsg源代码

    千次阅读 2007-09-19 13:07:00
    飞鸽传书(IP Messenger,简为IPMsg)是一个小巧方便的即时通信软件,它适合用于局域网内甚至广域网间进行实时通信和文档共享。特别是在局域网内传送文件/文件夹的速度非常快! IPMsg 是一款局域网内即时通信软件, ...
  • 企业即时

    2007-12-26 16:51:49
    企业即时通(Corperation Messager)软件是一款供企业或公司内部使用的网络聊天工具,主要用于员工之间的即时通信与交流。它主要由服务器端程序和客户端程序两部分组成,整体采用Java平台进行开发并实现,用户数据...
  • *后重点介绍几种通过网络实现串口通信途径,包括使用浏览器、基于云路由器和即时通信软件、用Java的平台语言等。书中大部分内容为作者多年从事串口通信研究成果及市场分析,并且加上了美国*网络通信技术。...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

java平台的即时通信软件

java 订阅