求JAVA SOCKET 编程源码

waterfriend2006 2007-11-15 05:07:21
如题,想看一个比较好的 SOCKET服务端和客户端编程源码,比如聊天,传输文件这些的,或者游戏服务器等,不知道有没有好的项目源码可以分享,谢谢!
...全文
777 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜魔009 2007-11-29
  • 打赏
  • 举报
回复
书店,随便的java教科书,网络章节都有的,很简单的!
四周的风景 2007-11-21
  • 打赏
  • 举报
回复
写Socket程序最好玩了,特别是跟硬件有交互的时候
palocc 2007-11-20
  • 打赏
  • 举报
回复
怎么用java代码的格式回复啊?就像2,3楼那样……
piaopiao11 2007-11-20
  • 打赏
  • 举报
回复
数据丢不丢应该是tcp层的事吧,tcp不就是可靠的连接么。
至于大文件,就是数据多点,传的慢点而已 呵呵。
xlyyc 2007-11-20
  • 打赏
  • 举报
回复
楼主可以去看看quickserver 直接baidu吧
waterfriend2006 2007-11-18
  • 打赏
  • 举报
回复
谢谢楼上的大哥,但是我想看的是复杂的SOCKET编程,例如在大的文件传输过程中,或者信息良较大时如何保证数据不丢失,如何分段传输,如何控制传输速度等等:) ,不知道有没有此类代码?
网络咖啡 2007-11-15
  • 打赏
  • 举报
回复

import java.io.*;
import java.net.*;
import java.util.*;
/**
* 逻辑线程对象
*/
public class ServerThread extends Thread {
/**声明连接对象*/
Socket s;
/**声明输出流对象*/
OutputStream os;
/**声明输出流对象*/
InputStream is;

/**Random对象*/
Random r;

/**随机生成的数字*/
int n;

/**用户出错的次数*/
int count = 0;

public ServerThread(Socket s){
this.s = s;
//初始化输入输出流
init();
//初始化
n = generateNumber();
}

private void init(){
r = new Random();
try{
os = s.getOutputStream();
is = s.getInputStream();
}catch(Exception e){

}
}

private int generateNumber(){
return r.nextInt(6) + 1;
}



public void run(){
//错误的次数不到3
while(count < 3){
System.out.println(n);
try{
//获得输入
byte[] b = new byte[10];
int num = is.read(b);
//转换成字符串
String s = new String(b,0,num);
//比较
if(s.equals("大")){
//判断是否正确
if(n > 3){
//重新生成一个
n = generateNumber();
//发送反馈
os.write("恭喜你,答对了!".getBytes());
os.flush();
}else{
//重新生成一个
n = generateNumber();
//错误次数增加
count++;
//发送反馈
os.write("回答错误,继续!".getBytes());
os.flush();
}
}else if(s.equals("小")){
//判断是否正确
if(n < 4){
//重新生成一个
n = generateNumber();
//发送反馈
os.write("恭喜你,答对了!".getBytes());
os.flush();
}else{
//重新生成一个
n = generateNumber();
//错误次数增加
count++;
//发送反馈
os.write("回答错误,继续!".getBytes());
os.flush();
}
}else{ //输入错误
os.write("格式错误,请输入大或小,继续!".getBytes());
os.flush();
}

}catch(Exception e){
e.printStackTrace();
}
}
//游戏结束
try{
os.write("游戏结束!".getBytes());
//关闭所有连接
//is.close();
//os.close();
s.close();
}catch(Exception e){

}
}
}
网络咖啡 2007-11-15
  • 打赏
  • 举报
回复

import java.io.*;
import java.net.*;
/**
* 服务器
*/
public class Server {
public static void main(String[] args) {
try{
//建立服务器端socket
ServerSocket ss = new ServerSocket(10000);

System.out.println("服务器已启动:");

while(true){
//接受连接
Socket s = ss.accept();

//启动一个线程去处理
ServerThread st = new ServerThread(s);
st.start();
}
}catch(Exception e){
e.printStackTrace();
}
//关闭

}

}

网络咖啡 2007-11-15
  • 打赏
  • 举报
回复
我贴一个简单的吧

import java.net.*;
import java.io.*;
/**
* 客户端
*/
public class Client {
public static void main(String[] args) {
try{
//建立连接
Socket socket = new Socket("127.0.0.1",10000);
//发送数据
OutputStream os = socket.getOutputStream();
//接收数据
InputStream is = socket.getInputStream();

//服务器端反馈
String s = "";
//输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
//循环处理
while(!s.equals("回答错误,继续!游戏结束!")){
System.out.println("请输入大或小:");
//用户输入
String input = br.readLine();
//发送
os.write(input.getBytes());
os.flush();
//获得服务器反馈
byte[] b = new byte[100];
int n = is.read(b);
s = new String(b,0,n);
System.out.println(s);
}
//关闭连接
is.close();
os.close();
socket.close();

}catch(Exception e){
e.printStackTrace();
}

}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧