今天同老大谈了涨薪的事。幅度不能令我满意,我谈了我的期待以及一些看法。答复是,如果不能promotion只能跳槽才能大幅涨薪。也就是说,目前的涨幅是不能promote的较合理涨幅。我是有信心争取promote的,但是,不知还有没有promote的机会。毕竟,一个公司里的高级职位是有限的。屈指算来,在公司里,干了快三年了,参加工作就要满8年了。心里不平静。
今天,写了一个java socket的例子,可以同时处理过个连接。这只是我体验block IO的例子,见笑了。也希望我从此不再眼高手低:
server端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerClient {
public static void main(String[] args) {
ServerSocket server = null;
try {
server = new ServerSocket(179);
while(true) {
final Socket socket = server.accept();
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
new Thread(new Runnable(){
Socket mysocket = socket;
public void run() {
System.out.println("in " + Thread.currentThread().getName());
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(new InputStreamReader(mysocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(mysocket.getOutputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println("server" + Thread.currentThread().getName() + "> " + line);
out.println("got " + line + " from " + Thread.currentThread().getName());
out.flush();
if (line.equals("quit")) {
System.out.println("...... exit from server" + Thread.currentThread().getName());
break;
}
}
System.out.println("out " + Thread.currentThread().getName());
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out != null) {
out.close();
}
if (mysocket != null) {
try {
mysocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
client端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket socket = new Socket("127.0.0.1",179);
BufferedReader fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter toServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String line = null;
System.out.println(" in clinet");
while ((line = console.readLine()) != "quit") {
toServer.println(line);
toServer.flush();
System.out.println("from server: " + fromServer.readLine());
}
System.out.println(".... exit from cilent");
fromServer.close();
toServer.close();
console.close();
socket.close();
}
}
中间有个小插曲,输出数据到stream时忘了调用flush,结果server和client都block了。
明天,开始关注NIO.