java socket

java socket

java socket

文章插图
Java Socket开发 关于报文传递和接收
java socket

文章插图
看 Oracle 官方教程,同步式的 Socket 就是传统的一问一答方式,它就是你需要的 。
客户端先 socket.getOutputStream().write(...); 之后到 socket.getInputStream().read(byte[]) 在循环中读取直到 read 方法返回 -1 或你期望的字节数已经全部收到了就停下来,如果不尝试停下来,后面的 read 将会阻塞等待 。
因为每个应用线程有各自的消息队列,我们把消息放入出站队列之后就到入站队列上用同步锁等待的方法阻塞到有消息回答时为止 。

关于 NIO non-blocking 非阻塞式 socket,下面有一个 NBTimeServer 例子,它讲的是服务端 。客户端与此类似,
http://docs.oracle.com/javase/7/docs/technotes/guides/io/example/index.html

NIO 通信线程样例 。
public void run()
{
int tip = 0;
try
{
selector = Selector.open();
SelectionKey k = channel.register(selector, getInterestOptions());
k.attach(thread); // 把当前线程绑定到附件中 。

this.running = true;
statusChanged(Status.CONNECTED);
while (this.isRunning())
{
// select() is a blocking operation.
int eventCount = selector.select();
debug("[MC.Debug] Polling TCP events ... " + eventCount);
if (eventCount > 0 && channel.isOpen() && this.isRunning())
{
Set keys = selector.selectedKeys();
for (Iterator iter = keys.iterator(); iter.hasNext(); iter.remove())
{
SelectionKey key = (SelectionKey) iter.next();
Thread thread = (Thread) key.attachment();
【java socket】if (!key.isValid())
{ // channel is closing.
break;
}
process(key); // 处理读取消息并把消息放入 thread 对应的队列 。
java socket聊天原理是怎样的?
java socket

文章插图
一般做法是客户端不断去轮询服务器:“有没有最新的消息?”,轮询频率高一些,给人的感觉就是实时通讯了 。
还有就是客户端也有监听,服务器发现有新的消息,及向保持联系的客户端发送消息 。
JAVA Socket编程和C++Socket编程有什么不同
java socket

文章插图
Socket 是winsock里的原始套接字开发接口API,c++/java 他们是开发语言,而 socket 是一种通讯标准简称 。首先,2者提供的接口不同(主要是封装形式不同),java 本身不带socket通讯底层实现的,而是通过调用系统底层的winsock API 进行的二次封装,而c/c++ 的socket可以理解为 更接近 系统层面的winsock,所以c/c++ 的socket 可以提供 更多的底层扩展与控制 。
而 C/c++ 要根据系统特性进行适当的修改 。
关于JAVA socket编程
java socket

文章插图
先运行服务器端类,然后再运行客户端类,就可以了

public class Server {
public static void main(String[] args) throws IOException{
Server server = new Server();
server.start();
}
public void start() throws IOException{
//ServerSocket 对当前服务器的服务端口的绑定
//这个端口号不能重复绑定,不能同时执行两边
ServerSocket ss = new ServerSocket(8888);
while(true){

//accept 开始等待(IO Block)客户连接(启动监听),如果没有客户端连接,一直挂起等待下去 。
//如果有客户端连接,才会继续执行下去,返回的Socket实例s 代表对于客户端连接 。
java Socket网络远程连接
java socket

文章插图
最简单的 在服务器建立一个 ServerSocket 监听连接过来的socket这里你需要了解java的socket编程,监听到socket连接之后,你要查询数据库 你需要了解JDBC 技术 。以上是服务器端的技术,前提是你有java基础 。
java中serversocket是什么意思
java socket

文章插图
serversocket 建立的是socket的服务端,
socket建立的是客户端 。
求一个java socket 小程序
java socket

文章插图
这个你可以先用serversocket建立一个服务端,然后等待客户端的连接
用socket建立一个客户端,添入ip和端口,然后连接serversocket,连接成功后服务端也会建议一个和客户端对应的socket通道,