java Socket编程基础
最简单的服务器接受单用户请求的socket编程模型,代码写得不好,只是用来阐明意思
client side
import java.net.*;
import java.util.*;
import java.io.*;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
Socket clientSocket=new Socket("localhost",9009);//connect
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
Scanner scanner=new Scanner(System.in);
System.out.print("username:");
String username=scanner.next();
System.out.print("password:");
String password=scanner.next();
out.println(username+" "+password);
String input;
while(true)
{
input=in.readLine();
if(input.equals("ok"))
{
System.out.println("message sent, cilent exit");
break;
}
}
in.close();
out.close();
clientSocket.close();
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
}
}
server side
import java.net.*;
import java.io.*;
//import java.util.*;
public class Server {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
ServerSocket serverSocket=new ServerSocket(9009);//listen 9008 port
//while(true)
//{
System.out.println("waiting for connecting");
Socket socket=serverSocket.accept();//create a socket to communicate
System.out.println("connected");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
String line;
while(true)
{
line = in.readLine();
if(line!=null)
{
break;
}
}
System.out.println("client said:" + line);
out.println("ok");
out.close();
i
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
1、 一个数如果恰好等于其因子(除了本身以外的约数之和),该数就称为“完数”。编写一个 Java Application 程序,求出 1000 以内的所有完数。
public class homework11
{
public static void main(String[] args)
//输出1000以内的所有完数
{
int sum; ......
1、编写一个简单的文本编辑器,要求:具有打开、保存、新建,粘贴、复制等功能;具有一个工具条。
1.1、程序源码(参见menu.java):
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.URL;
public class menu extends JFrame impl ......
package barchartdemo1;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.Numbe ......
BigDecimal类
双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。
表5.7 BigDecimal类的主要构造器和方法
构造器描述
BigDecimal(in ......