- 浏览: 497623 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (301)
- Swing技术 (1)
- Linux (1)
- Javascript (22)
- 数据结构和算法 (3)
- J2SE (36)
- workflow (5)
- 设计模式 (14)
- web service (19)
- Ajax (14)
- 中间件 & 服务器 (8)
- 多线程 (9)
- Oracle (52)
- sys & soft (10)
- JMS (3)
- sso (9)
- android (11)
- struts2 (10)
- web协议 (2)
- 分布式 (2)
- PM (2)
- OLAP (3)
- Redis (2)
- Hibernate (7)
- ibatis (2)
- SQLServer (1)
- maven (3)
- Spring (7)
- Jsp (2)
- slf4j (1)
- jQuery (15)
- 权限 (1)
- 系统集成 (1)
- 笔记 (1)
- Freemarker (2)
- 项目管理 (1)
- eclipse (3)
- GIS (1)
- NoSql (3)
- win10 (1)
- win10网络 (2)
- 底层 (3)
- 数据库 (0)
最新评论
-
kabuto_v:
请问那种图,uml图是怎么画出来的呢?是您自己手工画的,还是有 ...
FastJSON 序列化、反序列化实现 -
梦行Monxin商城系统:
电商实例、业务并发、网站并发及解决方法 -
rockethj8:
client 㓟有一个参数是可以忽略一些URL 不进行验证登录 ...
SSO 之 (单点登录)实施中遇到的几个问题 -
mengxiangfeiyan:
好啊。。。。。
Oracle删除表,删除数据以及恢复数据、利用现有表创建新表
package com.itown.hbportal.common.process.test;
import java.net.*;
import java.io.*;
import java.lang.*;
import java.net.*;
import java.io.*;
//实现Client端功能的ClientApp.java原文件:
public class ClientApp {
public static void main(String args[]) {
try {
// 创建通讯并且和主机Rock连接
Socket cSocket = new Socket("192.168.100.188", 8018);
// 打开这个Socket的输入/输出流
OutputStream os = cSocket.getOutputStream();
DataInputStream is = new DataInputStream(cSocket.getInputStream());
int c;
boolean flag = true;
String responseline;
while (flag) {
// 从标准输入输出接受字符并且写如系统
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '\n') {
os.flush();
//将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来
responseline = is.readLine();
System.out.println("Message is:" + responseline);
}
}
}
os.close();
is.close();
cSocket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}
// 实现Server端功能的ServerApp.java原文件:
class ServerApp {
public static void main(String args[]) {
try {
boolean flag = true;
Socket clientSocket = null;
String inputLine;
int c;
ServerSocket sSocket = new ServerSocket(8018);
System.out.println("Server listen on:" + sSocket.getLocalPort());
while (flag) {
clientSocket = sSocket.accept();
DataInputStream is = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
OutputStream os = clientSocket.getOutputStream();
while ((inputLine = is.readLine()) != null) {
// 当客户端输入stop的时候服务器程序运行终止!
if (inputLine.equals("stop")) {
flag = false;
break;
} else {
System.out.println(inputLine);
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '\n') {
os.flush(); // 将信息发送到客户端
break;
}
}
}
}
is.close();
os.close();
clientSocket.close();
}
sSocket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}
Socket多线程应该是:
服务器端处于等待状态,当有客户端请求时专门开启一个线程为其服务,当此访问结束则该线程关闭;
使用场景:
1、JAVA 与 QQ 网络通讯实例;java调用腾讯通通讯的应用。
2、聊天室应用。
用以下方法可以较好的解决Socket性能和对Web应用的影响:
1、试试nio包吧SocketChanel,效率高一些,也不容易在高并发情况下影响稳定性,不过nio是基于缓存的,容易造成数据包异常,要做一些处理。
2、在web应用外面独立编写一个Socket应用,web通过和这个应用通讯完成原来写在页面的通讯代码,这样不容易因为网络问题造成意外影响。
3、如果如你所说,是一个不断的长连接,可以在tomcat或应用启动的时候就建立一些连接,并定期检查连接状态,或定期重新连接,周期不要太短。web中所有的socket通讯都由这个连接完成。
import java.net.*;
import java.io.*;
import java.lang.*;
import java.net.*;
import java.io.*;
//实现Client端功能的ClientApp.java原文件:
public class ClientApp {
public static void main(String args[]) {
try {
// 创建通讯并且和主机Rock连接
Socket cSocket = new Socket("192.168.100.188", 8018);
// 打开这个Socket的输入/输出流
OutputStream os = cSocket.getOutputStream();
DataInputStream is = new DataInputStream(cSocket.getInputStream());
int c;
boolean flag = true;
String responseline;
while (flag) {
// 从标准输入输出接受字符并且写如系统
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '\n') {
os.flush();
//将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来
responseline = is.readLine();
System.out.println("Message is:" + responseline);
}
}
}
os.close();
is.close();
cSocket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}
// 实现Server端功能的ServerApp.java原文件:
class ServerApp {
public static void main(String args[]) {
try {
boolean flag = true;
Socket clientSocket = null;
String inputLine;
int c;
ServerSocket sSocket = new ServerSocket(8018);
System.out.println("Server listen on:" + sSocket.getLocalPort());
while (flag) {
clientSocket = sSocket.accept();
DataInputStream is = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
OutputStream os = clientSocket.getOutputStream();
while ((inputLine = is.readLine()) != null) {
// 当客户端输入stop的时候服务器程序运行终止!
if (inputLine.equals("stop")) {
flag = false;
break;
} else {
System.out.println(inputLine);
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '\n') {
os.flush(); // 将信息发送到客户端
break;
}
}
}
}
is.close();
os.close();
clientSocket.close();
}
sSocket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}
Socket多线程应该是:
服务器端处于等待状态,当有客户端请求时专门开启一个线程为其服务,当此访问结束则该线程关闭;
使用场景:
1、JAVA 与 QQ 网络通讯实例;java调用腾讯通通讯的应用。
2、聊天室应用。
用以下方法可以较好的解决Socket性能和对Web应用的影响:
1、试试nio包吧SocketChanel,效率高一些,也不容易在高并发情况下影响稳定性,不过nio是基于缓存的,容易造成数据包异常,要做一些处理。
2、在web应用外面独立编写一个Socket应用,web通过和这个应用通讯完成原来写在页面的通讯代码,这样不容易因为网络问题造成意外影响。
3、如果如你所说,是一个不断的长连接,可以在tomcat或应用启动的时候就建立一些连接,并定期检查连接状态,或定期重新连接,周期不要太短。web中所有的socket通讯都由这个连接完成。
发表评论
-
底层读写-NIO实战
2016-03-04 10:51 835最近参与实现底层高并发处理的项目,接收socket ... -
底层网络读写
2016-03-04 10:49 573Java NIO:NIO概述 http://w ... -
java方法返回多个值
2016-01-22 09:11 768http://www.iteye.com/topic/114 ... -
模拟form表单上传图片
2016-01-19 17:23 755转自:http://blog.csdn.net/5iasp ... -
java包装类的几点注意
2016-01-18 10:52 804java中8种基本类型变量对应的包装类: ... -
JAVA调用聚合天气api接口示例
2016-01-15 09:42 4043http://www.iteye.com/topic/114 ... -
java对象序列化过程
2016-01-05 10:22 743一、 http://bbs.csdn.net/topi ... -
Java6 枚举常见7种用法
2014-02-09 23:02 855http://blog.csdn.net/shimiso/a ... -
异常 之 异常体系
2013-10-07 23:00 903J2EE系统异常的处理准则 ... -
异常 之 finally的特殊处理
2013-10-07 22:26 916http://java.chinaitlab.com/expe ... -
Java图片剪裁功能实现
2013-07-28 23:17 1507http://shensy.iteye.com/blog/16 ... -
让frameset居中
2013-07-25 19:59 0JSPHTML 平常我个人开发页面时,一般用width ... -
session生命周期
2013-07-23 08:40 0http://blog.sina.com.cn/s/blog_ ... -
转发和重定向的区别
2013-07-23 08:30 0http://www.2cto.com/kf/201107/9 ... -
NIO 之 BIO和NIO机制和socket
2013-07-14 18:38 1420https://www.ibm.com/developerwo ... -
win7下安装配置tomcat,java运行环境
2013-06-30 19:39 0http://www.cnblogs.com/pannysp/ ... -
JSP之 操作Cookie
2013-06-12 18:09 0Cookie应该是一 ... -
Socket实战之二 多线程通信
2013-05-31 15:15 0http://blog.csdn.net/kongxx/art ... -
Socket实战之七 使用Socket通信传输文件
2013-05-31 15:10 895http://blog.csdn.net/kongxx/art ... -
Socket实战之六 使用NIO包实现Socket通信
2013-05-31 15:06 1158本文地址:http://blog.csdn.net/kongx ...
相关推荐
1. **创建Socket**:调用`socket()`函数创建一个Socket描述符,指定协议类型(如TCP,即面向连接的传输层协议)和地址族(如AF_INET,表示IPv4)。 2. **绑定Socket**:使用`bind()`函数将Socket绑定到一个特定的IP...
【程序老媛出品,必属精品...资源名:VB SOCKET一对多通讯 客户端和服务端程序源码 资源类型:程序源代码 源码说明: 基于VB编写的socket 一对多通信实例源码 包含客户端和服务端 适合人群:新手及有一定经验的开发人员
在这个“socket一对多端口转发源码”中,核心逻辑应该是这样的: 1. **创建ServerSocket实例**:程序首先会创建一个`ServerSocket`对象,绑定到本地的特定端口,开始监听。这个端口就是数据进入的入口。 2. **接受...
在这个名为"socket一个简单的程序"的示例中,我们将会探讨如何构建一个基础的客户端和服务端模型,这对于理解Socket工作原理及其在实际开发中的应用至关重要。 首先,让我们了解什么是Socket。Socket,即套接字,是...
本文将深入探讨“Socket一对一”和“Socket一对多”多线程应用,并结合Java IO流的使用,来理解如何构建这样的系统。 首先,让我们了解Socket的基本概念。Socket,也被称为套接字,是网络编程中的一个接口,它允许...
在IT领域,网络编程是不可或缺的一部分,而Socket编程则是实现网络通信的基础。本文将深入探讨如何利用Socket进行连续发送与连续接收数据,基于标题“利用socket连续发送与连续接收数据”以及描述中提到的实现过程。...
Qt下UDPSocket一段时间后接收不到数据的问题
Java应用Socket通讯一对多: ⑴、一对多; ⑵、通过list/map存储连接的socket对象,服务端向所有客户端群发消息,可以修改为服务端向指定客户端发送消息; ⑶、自动定时扫描客户端,移除断开的连接。
1. 创建Socket对象:`Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);` 2. 连接服务器:`socket.Connect(new IPEndPoint(IPAddress.Parse("服务器IP"), 端口号));` ...
1. **连接与监听**:SocketTool允许用户设置服务器端的监听套接字,用于接收客户端的连接请求。同时,它也支持作为客户端,连接到远程服务器进行数据交互。 2. **数据传输**:该工具提供发送和接收数据的功能,可以...
SuperSocket是一款高性能、轻量级的C# Socket服务器开发框架,它为开发者提供了构建基于TCP/IP协议的应用程序的便利工具。在.NET平台上,SuperSocket以其易于扩展和高度定制化的特性,成为了Socket多线程编程的一个...
Socket编程是一种用于网络通信的技术,它允许不同计算机系统之间建立双向的数据流。在PHP中,使用`socket_*`函数族可以轻松地创建、管理和操作Socket。本案例中,我们关注的是基于TCP协议的Socket通信,它提供了一个...
1. **初始化socket库**:首先,需要包含必要的头文件(如`#include <sys/socket.h>`,`#include <netinet/in.h>`,`#include <arpa/inet.h>`等),并调用`socket()`函数创建一个socket描述符。 2. **绑定和监听**:...
1. **C# Socket**: C#中的Socket类提供了低级别的网络通信接口,它可以用于TCP(Transmission Control Protocol)或UDP(User Datagram Protocol)协议。TCP提供面向连接的、可靠的字节流服务,而UDP则是无连接的...
在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变得简单高效。本文将深入探讨SuperSocket...
1. 初始化与配置:在应用程序启动时,根据预设的参数初始化Socket池,如最大连接数、最小连接数、超时时间等。 2. 获取Socket:当需要建立连接时,从池中取出一个Socket,如果池为空,则创建新的Socket。可以采用...
在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,我们将详细介绍 ...
Socket编程是网络通信的核心技术,它为应用程序提供了一种通过网络发送和接收数据的方法。在本文中,我们将深入探讨如何使用Socket实现一对一的聊天应用,包括客户端和服务端的设计与实现。 **1. Socket基础** ...
例如,`Socket1.Port = 1234` 和 `Socket1.Host = "192.168.1.1"`,其中1234是自定义的端口,"192.168.1.1"是服务器的IP地址。 为了实现聊天功能,我们需要实现以下关键步骤: 1. **连接服务器**:使用`Socket1....
1. **创建Socket对象**:在Winform程序中,我们首先需要实例化一个Socket对象,指定其使用的协议类型(如TCP或UDP)。 2. **绑定Socket**:使用`Bind()`方法将Socket绑定到本地IP地址和端口,这样Socket就能监听...