java TCP/IP Socket编程(1.3版)

java TCP/IP Socket编程(1.3版)谁有以下这几个类麻烦给发一下。谢谢了。
import com.sse.monitor.bean.Message;

import com.sse.monitor.bean.MessageHead;

import com.sse.monitor.bean.ResponseMessage;

import com.sse.monitor.form.ListenerInvoke;
邮箱地址wangweiying315@163.com

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用socket 实现Modbus TCP/IP 通讯

如题,C++编程:用socket TCP/IP 更改端口号 为502 可以实现Modbus TCP/IP 通讯吗? 1、我现在服务器端是用socket TCP/IP 创建的,客户端用的是Modsim32的从设备仿真工具。 2、基本配置 物理链路上是通的; 我要实现服务器端到客户端数据的收发,服务器端 的端口号是502; 系统是win7 32 Pro 中文版,编译环境是VC++6.0; 3、测试结果,服务器创建失败; 4、问题,我这样做有问题么

门禁控制器tcp/ip连接问题

公司去别的公司买了网络门禁控制器,现在要对接别人的网络门禁控制器,对方没有提供什么有价值的东西,就是提供了一个测试软件,用来改门禁控制器的ip,以及连接服务器的ip,说的是socket连接,可是,我改好门禁控制器的ip,把我电脑所在的ip设为服务器ip,门禁控制器ip和服务器ip在同一网段,可是我电脑上面跑的socket客户端连上不这个门禁控制器,ping这个门禁控制器ip可以ping到,可是ping ip加端口之后,显示端口关闭。可以用别人提供的测试软件就可以正常使用。这到底是什么问题啊。有没有谁碰到过,谢谢了

java modbus TCP/IP 报文解析成真实数据

java modbus TCP/IP 怎么解析modbus报文成为真是数据

modbus tcp/ip java开发

modbus 怎么用Tcp/Ip的方式通信设备, 设备根本没有IP和端口呢,怎么建立连接, 请大神指教

单独写的一个socket服务应该怎么部署?部署到哪个平台?

RT: 想问下:我通过java代码实现了一个socket服务端(可以启动socket服务,接收客户端请求,给客户端回复响应),在eclipse中调试启动服务,调测是OK的; 但是这个服务怎么才能集成或部署到一个类似于jetty或tomcat容器中呢?(而不是每次通过eclipse启动),知道的能告诉我一个具体方法吗?感激!

我想用java建立tcp/ip服务器然后用flash接受服务器发送的数据,同事将数据发送给js代码然后进一步操作

服务器代码: package JSocket; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Server { private static final int PORT = 3000; // 端口号 private static List<Socket> list = new ArrayList<Socket>(); // 保存连接对象 private ExecutorService exec; private ServerSocket server; public static void main(String[] args) { new Server(); } public Server() { try { server = new ServerSocket(PORT); exec = Executors.newCachedThreadPool(); System.out.println("服务器已启动!"); Socket client = null; while (true) { client = server.accept(); // 接收客户连接 list.add(client); exec.execute(new ChatTask(client)); } } catch (IOException e) { e.printStackTrace(); } } static class ChatTask implements Runnable { private Socket socket; private BufferedReader br; private String msg=""; public ChatTask(Socket socket) throws IOException { this.socket = socket; br = new BufferedReader(new InputStreamReader(socket.getInputStream())); } public void run() { new Thread(new Runnable() { public void run() { PrintWriter pw; try { pw = new PrintWriter(socket.getOutputStream(), true); int i = 0; while(true){ i=i+1; msg=i+"\n"; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } pw.println(msg); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } } } 客户端代码: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="initApp()"> <fx:Script> <![CDATA[ import flash.net.Socket; import mx.controls.Alert; private var socket:Socket; private function initApp():void { StartTest(); } private function StartTest():void { socket = new Socket("127.0.0.1",3000); // socket.addEventListener(Event.CONNECT, connectHandler); socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); } private function CloseTest():void { if(socket!=null && socket.connected) { trace("socket.connected:"+socket.connected); socket.close(); trace("socket.connected:"+socket.connected); } } // private function connectHandler(event:Event):void // { // trace("connectHandler: " + event); // socket.writeMultiByte(SendStr.text,"GB2312"); // socket.flush(); // } private function socketDataHandler(event:ProgressEvent):void { trace("socketDataHandler: " + event); var str:String=socket.readMultiByte(socket.bytesAvailable,"GB2312"); [color=red]ExternalInterface.call("addValue",str);[/color] // Alert.show(str); // ReceiveStr.text = str; } private function alert():void{ for(var i:int=0;i<10;i++){ ExternalInterface.call("addValue","success!"+i); } } ]]> </fx:Script> <mx:TextArea id="ReceiveStr" x="53" y="68" width="200" height="200"/> <s:Button click="alert()" label="alert"/> </s:Application> jsp代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>jsocketTest</title> <script type="text/javascript" src="<%=basePath%>jsocketTest/JSocket/jSocket.js"></script> </head> <body> [color=red]<script type='text/javascript'> function addValue(value) { alert(value); //mySocket.innerText = mySocket.innerText + value; } </script>[/color] <div id='mySocket' /></div> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="SocketTest"> <param name="movie" value="bin-debug/SocketTest.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="bin-debug/SocketTest.swf" width="100%" height="100%"> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <!--<![endif]--> <!--[if gte IE 6]>--> <p> Either scripts and active content are not permitted to run or Adobe Flash Player version 10.0.0 or greater is not installed. </p> <!--<![endif]--> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </body> </html> 我想用java建立tcp/ip服务器然后用flash接受服务器发送的数据,同事将数据发送给js代码然后进一步操作,但是flash单独运行可以接受到服务器的数据,但一旦传给js,js确接不到数据。正常用flash调用js函数还好使,就是flash从服务器接受到的数据在传给js就是显示不出来!帮帮我吧!先谢谢大家了!

socket tcp通信客户端句柄设为全局变量

将初始化和发送分别放在两个函数中,句柄设为全局变量,发送结果显示错误:socket on non-socket,求教应该怎么改

通过C++/java socket向服务器端传递字符串并接收服务器的反馈字符串与使用浏览器实现相同功能有何区别?

1.在写一个打开网络服务的软件的接口时(win10环境),用c++和java 的socket分别写了两个客户端,客户端的功能是通过端口8081向本地服务器localhost发送字符串“?scanX”,然后接收服务器的反馈“done!",但是在接收的过程中会出现网络中断,要写接口的软件报错;但如果用浏览器,直接在地址栏输入"http://127.0.0.1:8081/?scanB" ,浏览器会直接显示"done!".我想解决的是用c++写一个接口exe能及时向服务器传递字符串并接收反馈,但此时反馈出现了问题,本人小白,问了很多前辈也未能解决疑问,在此求教各位前辈,大佬。 2.以下为c++代码段,运行到"sended request success!"后网络服务器不知为何断开,要写接口的软件报错 #include <iostream> #include <windows.h> using namespace std; //在windows网络编程中需要引入库 #pragma comment(lib, "wsock32.lib") int main(int argc, char *argv[]) { //在windows网络编程中导入库,linux中不需要 WSADATA Ws; if (WSAStartup(MAKEWORD(2, 2), &Ws) != 0) { cout << "Init Windows Socket Failed::" << GetLastError() << endl; return -1; } //通过域名获取IP地址 HOSTENT *host_entry = gethostbyname("127.0.0.1"); if (!host_entry){ return -1; } //将网络字节序的网络地址转为本地字节序 char *serverIP = inet_ntoa(*((struct in_addr *)host_entry->h_addr)); cout << "server IP is " << serverIP << endl; //创建socket并且绑定了TCP协议 int hsocket = socket(AF_INET, SOCK_STREAM, 0); //socket创建失败,一般都是系统资源没有了,或者没有权限 if (hsocket == INVALID_SOCKET) *** { cout << "Create Socket Failed::" << GetLastError() << endl; return -2; } //连接http服务器 sockaddr_in servAddr; servAddr.sin_family = AF_INET; servAddr.sin_port = htons(8081); //指定端口号 servAddr.sin_addr.S_un.S_addr = inet_addr(serverIP); if (connect(hsocket, (struct sockaddr*)&servAddr, sizeof(servAddr)) == -1) { cout << "Connect error" << endl; return -3; } else cout << "Connected "<<serverIP<<" successed!" << endl; //发出页面URL请求数据 char req[] = "?connect0"; //注意send并不能保证你指定大小的数据它能够全部发送, if (send(hsocket, req, (int)strlen(req), 0) < 0) { cout << "send request error" << endl; return -4; } cout << "sended request success!" << endl; //接收数据的缓冲,应为是字符串所以结尾要加\0,我们一开始就将它全部置0 char buffer[10000] = {0}; int len; if ( recv(hsocket, buffer, sizeof(buffer)-1, 0) <0) { cout << "read error" << endl; exit(1); } cout << buffer << endl; getchar(); return 0; } ``` ``` 这是运行结果 ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553395763_716349.png) 软件报错(查百度说这句话是因为读取软件数据导致的,不知正确与否) ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553395434_777007.png) 对比使用浏览器通信,能直接收到反馈 ![图片说明](https://img-ask.csdn.net/upload/201903/24/1553395626_39803.png)

socket编程——内网ping公网失败

我电脑连的是铁通的公网,在做一个C/S socket编程。在我一台电脑上客户端和服务器之间可以正常发送数据,但是客户端放到别的可以上网的电脑上时就连不上了。我用ping命令检测过网络情况,基本上都ping不通。只有一次一个同学在公司用他的电脑ping通了,不过是单向的,我还是Ping不通他的,服务器和客户端之间还是发送不了数据。有哪位高手知道是什么原因?谢谢! 服务器端部分代码如下: //设定地址 serv.sin_addr.s_addr=htonl(INADDR_ANY); serv.sin_family=AF_INET; serv.sin_port=5000;//htons(5000); addlen=sizeof(serv); m_button.EnableWindow(FALSE);//退出为假 //创建socket sock=socket(AF_INET,SOCK_STREAM,0); BOOL val=true; if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val))!=0); { printf("error!setsocket failed!/n"); // return -1; } //将socket绑定到服务器上 if (bind(sock,(sockaddr*)&serv,addlen)) { m_edit.SetWindowText("绑定错误"); }else { //m_list.InsertItem(count++,inet_ntoa(serv.sin_addr)); m_edit.SetWindowText("服务器创建成功"); //开始侦听 listen(sock,5); 客户端: cli.sin_addr.s_addr=inet_addr(ipaddress); cli.sin_family=AF_INET; cli.sin_port=5000;//htons(5000); //创建socket clisock=socket(AF_INET,SOCK_STREAM,0); val=true; if(setsockopt(clisock,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val))!=0); { printf("error!setsocket failed!/n"); // return -1; } if(connect(dlg->clisock,(sockaddr*)&(dlg->cli),sizeof(dlg->cli))==INVALID_SOCKET) { printf("connet()failed:%d\n",WSAGetLastError()); dlg->m_edit.SetWindowText("等待....."); } else { dlg->m_list.InsertItem(dlg->count++,"连接成功"); dlg->m_button1.EnableWindow(TRUE); dlg->SetForegroundWindow(); } //接收数据 while(s!=SOCKET_ERROR && dlg->ee!=0) { //调用recv函数接收数据 s=recv(dlg->clisock,buff,100,0); dlg->SetForegroundWindow();//做什么? //如果没有接收错误,同时没有断开连接,则显示接收到的数据 if (s!=SOCKET_ERROR && dlg->ee!=0) dlg->m_list.InsertItem(dlg->count++,buff); dlg->m_list.Scroll(size); }

Java TCP文件服务器,下载到的文件和原文件大小不一致

本人编程新手,要求用java写一个tcp文件服务器,客户端向服务器端发送请求,下载服务器端的文件。我出现的问题是:客户端从服务器端下载到的文件大小不一致,而且下载到的文件也带不开,真诚请教解决办法。 [code="java"] //客户端代码 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; import java.util.Scanner; public class SendFileClient { public static void main( String[] args ) throws IOException { // TODO Auto-generated method stub System.out.println( "This is client" ); byte[] buf = new byte[1024]; System.out.println("Please input the Ip Address that you connect"); //Create the scanner s1 to let user input the server IP address Scanner s1 = new Scanner(System.in); String ip = s1.nextLine(); System.out.println("Please input the port"); //Create the scanner s2 to let user input the server port Scanner s2 = new Scanner(System.in); String portStr = s2.nextLine(); //Convert the String portStr to integer int port = Integer.parseInt(portStr); try { // Create the socket Socket s = new Socket(); s.connect ( new InetSocketAddress (ip,port )); //Create the outstream OutputStream os = s.getOutputStream( ); //Create the inputstream InputStream is = s.getInputStream( ); //Read the buf though the inputstream int len = is.read( buf ); //Print out the data by converting it to a String System.out.println( new String( buf, 0, len ) ); System.out.println("Please input the request"); //Create scanner s3 to Let the user input the request //The request format has to be:Send filename Scanner s3 = new Scanner(System.in); String req = s3.nextLine(); os.write( req.getBytes( ) ); //Read the data to buf though the inputstream int len2 = is.read(buf); String file = new String(buf,0,len2); System.out.println("Wait..."); //Create the dataoutputstream for receiving the file DataOutputStream fos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file))); byte[] buff = new byte[1024]; //Receive the file, write it out. int data; while ( -1 != ( data = is.read(buff) ) ) { fos.write( buff ); } System.out.println("\nFile has been received successfully."); fos.flush(); fos.close(); //Close the outputstream os.flush(); os.close(); //Close the inputstream is.close(); //Close the socket s.close( ); } catch ( Exception ex ) { ex.printStackTrace(); } } } [/code] [code="java"] import java.net.*; import java.io.*; //服务器端代码 public class SendFileSocket extends Thread { /** * @param args */ public static void main( String[] args ) { //Start the server server( ); } //Set the Server port =10000 private static final int PORT = 10000; private Socket s; public SendFileSocket( Socket s ) { //Create the socket object this.s = s; } public void run() { try { //Create the outputstream OutputStream os = s.getOutputStream( ); //Create the inputstream InputStream is = s.getInputStream( ); os.write( "Hello,welcome you!".getBytes( ) ); //Define the data byte as buf byte[] buf = new byte[10240]; while ( true ) { //Read the buf though the inputstream int len = is.read( buf ); String revStr = new String( buf, 0, len ); //Print out the request information from the client System.out.println( "This client wants to "+revStr ); String fileName; //The requet should starts with Send if ( revStr.startsWith( "Send " )) { //Get the file name from the request by using //The method getFileName fileName = getFileName( revStr ); //Print out the filename System.out.println( "The file name is :"+fileName); //Write out the filename though the outputstream os.write(fileName.getBytes()); System.out.println("Start to send file " +fileName); String filePath = "C:/"; String file = (filePath+fileName); //Combine the filepath and the filename File fi = new File(file); //Declare a datainputstream DataInputStream fins = new DataInputStream( new BufferedInputStream(new FileInputStream(file))); DataOutputStream ps = new DataOutputStream(s.getOutputStream()); //Start to read the data from the file byte[] buff = new byte[10240]; int data; while ( -1 != ( data = fins.read(buff) ) ) { //send the file data to the client ps.write( buff ); } System.out.println("Transfer complete."); ps.flush(); ps.close(); break; } else{ System.out.println("Request is wrong"); System.exit(0); } } os.flush(); //Close the outputstream os.close( ); //Close the inputstream is.close( ); //Close the socket s.close( ); } catch ( Exception e ) { //Catch the exception e.printStackTrace( ); } } /* * Function:Get the filename from the request which is sent from the client * param:The request from the client has to start with"Send" * Return: The filename */ private String getFileName( String revStr ) { String fileName; fileName = revStr.substring( 4 ); while ( fileName.startsWith( " " ) ) { fileName = fileName.substring( 1 ); } return fileName; } public static void server() { System.out.println( "This is server" ); try { ServerSocket ss = new ServerSocket( PORT ); int count = 0; while ( true ) { //Create a socket for waiting for the client connect Socket s = ss.accept( ); //Count the client and print out count++ ; System.out.println( "This is the " + count + "'st client connetion!" ); //Start new thread for this socket new Thread(new SendFileSocket(s)).start(); } } catch ( Exception ex ) //Catch the exception { ex.printStackTrace( ); } } } [/code]

java socket网络聊天室 客户端接收不到服务端的消息

![图片说明](https://img-ask.csdn.net/upload/202004/17/1587121278_71861.png) 运行之后 服务端给客户端发消息 客户端接收不到服务端的消息 服务端可以接收到客户端的消息 求助!! 服务端代码: ``` package Chat; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.ServerSocket; import java.net.Socket; //如果一个类需要有界面的显示,那么该类就需要继承自JFrame,并被称为"窗体类"。 //1.定义JFrame窗体中的组件 //2.在构造方法中初始化窗体的组件 //3.使用网络编程完成数据的传输(TCP,UDP 协议) //4.实现发送按钮的监听点击事件 public class ServerChatMain extends JFrame implements ActionListener{ public static void main(String[] args) { //调用构造方法 new ServerChatMain(); } //属性 //文本域 private JTextArea jta; //滚动条 private JScrollPane jsp; //面板 private JPanel jp; //文本框 private JTextField jtf; //按钮 private JButton jb; //输出流 private BufferedWriter bw = null; //构造方法 public ServerChatMain(){ //初始化组件 jta = new JTextArea(); //注意:需要设置文本域默认不可编辑 jta.setEditable(false); //注意:需要将文本域添加到滚动条中,实现滚动效果。 jsp = new JScrollPane(jta); //面板 jp = new JPanel(); jtf = new JTextField(10); jb = new JButton("发送"); //注意:需要将文本框与按钮添加到面板中 jp.add(jtf); jp.add(jb); //注意:需要将文本框与面板全部添加到窗体中 this.add(jsp, BorderLayout.CENTER); this.add(jp,BorderLayout.SOUTH); //注意:需要设置标题,大小,位置,关闭,是否可见 this.setTitle("聊天室服务端"); this.setSize(300,300); this.setLocation(300,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); //TCP服务端开始 //给发送按钮绑定一个监听点击事件 jb.addActionListener(this); try{ //1.创建服务端套接字 ServerSocket serverSocket= new ServerSocket(8888); //2.等待服务端的连接 Socket socket = serverSocket.accept(); //3.获取Socket通道输入流(使用BufferedReader实现每行读取) //InputStream in= socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //4. 获取Socket通道输出流(使用BufferedWriter实现刷新和换行) //当用户需要点击发送按钮的时候需要写出数据 bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); //循环读取数据,并拼接到文本域中 String line = null; while((line=br.readLine())!=null){ //将读取的数据拼接到文本域中显示 jta.append(line+System.lineSeparator()); } //5.关闭ServerSocket通道 serverSocket.close(); }catch (IOException e){ e.printStackTrace(); } //TCP服务端结束 } @Override public void actionPerformed(ActionEvent e){ //System.out.println("发送按钮被点击了"); //1.获取文本框中发送的内容 String text =jtf.getText(); //2.拼接需要发送的内容 text ="服务端对客户端说:"+text; jta.append(text+System.lineSeparator() ); //3.发送 try { bw.write(text); bw.newLine(); bw.flush(); //4.清空文本框内容 jtf.setText(""); } catch (IOException e1) { e1.printStackTrace(); } } } ``` 客户端代码: ``` package Chat; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.net.Socket; //如果一个类需要有界面的显示,那么该类就需要继承自JFrame,并被称为"窗体类"。 //1.定义JFrame窗体中的组件 //2.在构造方法中初始化窗体的组件 public class ClientChatMain extends JFrame implements ActionListener { public static void main(String[] args) { //调用构造方法 new ClientChatMain(); } //属性 //文本域 private JTextArea jta; //滚动条 private JScrollPane jsp; //面板 private JPanel jp; //文本框 private JTextField jtf; //按钮 private JButton jb; //输出流 private BufferedWriter bw = null; //构造方法 public ClientChatMain() { //初始化组件 jta = new JTextArea(); //注意:需要设置文本域默认不可编辑 jta.setEditable(false); //注意:需要将文本域添加到滚动条中,实现滚动效果。 jsp = new JScrollPane(jta); //面板 jp = new JPanel(); jtf = new JTextField(10); jb = new JButton("发送"); //注意:需要将文本框与按钮添加到面板中 jp.add(jtf); jp.add(jb); //注意:需要将文本框与面板全部添加到窗体中 this.add(jsp, BorderLayout.CENTER); this.add(jp, BorderLayout.SOUTH); //注意:需要设置标题,大小,位置,关闭,是否可见 this.setTitle("聊天室客户端"); this.setSize(300, 300); this.setLocation(300, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); //TCP客户端开始 //给发送按钮绑定一个监听点击事件 jb.addActionListener(this); try { //1.创建客户端套接字(尝试连接) Socket socket = new Socket( "192.168.1.106",8888); //2.获取socket通道输入流 BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //3.获取socket通道输出流 bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); //循环读取数据,并拼接到文本域中 String line = null; while ((line = br.readLine()) != null) ; jta.append(line + System.lineSeparator()); //4.关闭socket通道 socket.close(); } catch (Exception e) { e.printStackTrace(); } //TCP客户端结束 } @Override public void actionPerformed(ActionEvent e){ //1.需要获取文本框中需要发送的数据内容 String text =jtf.getText(); //2.拼接内容 text = "客户端对服务端说:"+text; //3.自己显示 jta.append(text+System.lineSeparator()); try { //4.发送 bw.write(text); bw.newLine(); bw.flush(); //5.清空 jtf.setText(""); } catch (IOException ex) { ex.printStackTrace(); } } } ```

Socket编程初级问题,关于消息发送

本人刚接触java以及socket编程,入门级水平。 现已知客户端跟服务端java代码如下: //服务端 import java.net.*; // for Socket, ServerSocket, and InetAddress import java.io.*; // for IOException and Input/OutputStream public class TCP_Server { private static final int BUFSIZE = 32; // Size of receive buffer public static void main(String[] args) throws IOException { if (args.length != 1) // Test for correct # of args throw new IllegalArgumentException("Parameter(s): <Port>"); int servPort = Integer.parseInt(args[0]); // Create a server socket to accept client connection requests ServerSocket servSock = new ServerSocket(servPort); int recvMsgSize; // Size of received message byte[] byteBuffer = new byte[BUFSIZE]; // Receive buffer for (;;) { // Run forever, accepting and servicing connections Socket clntSock = servSock.accept(); // Get client connection System.out.println("Handling client at " + clntSock.getInetAddress().getHostAddress() + " on port " + clntSock.getPort()); InputStream in = clntSock.getInputStream(); OutputStream out = clntSock.getOutputStream(); // Receive until client closes connection, indicated by -1 return while ((recvMsgSize = in.read(byteBuffer)) != -1) /* (添加代码,企图改变字符串顺序) */ out.write(byteBuffer, 0, recvMsgSize); clntSock.close(); // Close the socket. We are done with this client! } /* NOT REACHED */ } } ``` ``` //客户端 import java.net.*; // for Socket import java.io.*; // for IOException and Input/OutputStream public class TCPEchoClient { public static void main(String[] args) throws IOException { if ((args.length < 2) || (args.length > 3)) // Test for correct # of args throw new IllegalArgumentException("Parameter(s): <Server> <Word> [<Port>]"); String server = args[0]; // Server name or IP address // Convert input String to bytes using the default character encoding byte[] byteBuffer = args[1].getBytes(); int servPort = (args.length == 3) ? Integer.parseInt(args[2]) : 7; // Create socket that is connected to server on specified port Socket socket = new Socket(server, servPort); System.out.println("Connected to server...sending echo string"); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); out.write(byteBuffer); // Send the encoded string to the server // Receive the same string back from the server int totalBytesRcvd = 0; // Total bytes received so far int bytesRcvd; // Bytes received in last read while (totalBytesRcvd < byteBuffer.length) { if ((bytesRcvd = in.read(byteBuffer, totalBytesRcvd, byteBuffer.length - totalBytesRcvd)) == -1) throw new SocketException("Connection close prematurely"); totalBytesRcvd += bytesRcvd; } System.out.println("Received: " + new String(byteBuffer)); socket.close(); // Close the socket and its streams } } ``` ``` 一般情况下,是开两个终端分别运行服务端与客户端, 先执行服务端,显示如下: g136@ispc29Lx:~$ java TCP_Server 50000 再执行客户端,依次输入IP 字符串 port号,显示如下 g136@ispc29Lx:~$ java TCPEchoClient 150.86.64.169 ab 50000 然后客户端跟服务端都会产生反应,如下: g136@ispc29Lx:~$ java TCP_Server 50000 Handling client at 150.86.64.169 on port 58002 g136@ispc29Lx:~$ java TCPEchoClient 150.86.64.169 ab 50000 Connected to server...sending echo string Received: ab 输入的是ab,服务端原封不动的返回的也是ab,我希望能在服务端添加一段代码,使返回的字符顺序改变成ba;或者把ab变成大写,怎么都行,只是希望能对原字符串进行改变。 第一次提问题,还请多多包涵。

socket循环发送请求并读取响应时,循环到第二次之后就读不到响应内容

问题描述: 业务需求是有一个报文数组,我遍历该数组,每取到一个报文串,便通过socket发送至服务端处理,然后读取服务端响应的报文。但是经过反复测试,每次循环第一次的流程是正常的,但是循环到第二次之后,却读不到响应的报文(内容为空)。求各路神仙大虾帮我看看(PS:我看过网上很多的帖子,有的人说socket输入流就像一个一次性的杯子,只能使用一次。但是按这样的话,我岂不是每次发送都需要建立socket连接?这样太消耗资源了吧)。 这是我的业务逻辑代码 public void sendReq(String[] RequestXml) throws Exception{ Messenger messenger = new Messenger(SERVERIP, SERVERPORT, TIMEOUT, "UTF-8"); for (String requestXML : RequestXml) { String response = messenger.sendReq(requestXML); System.out.println(response); } messenger.close(); } 下面是我的socket发送类代码 public class Messenger { private static final Logger logger = Logger.getLogger(Messenger.class); private Socket soc; private PrintWriter pw; private BufferedReader sin; private String charset; /** * 初始化连接 * @param serverIp 连接IP * @param serverPort 连接端口 * @param timeout 超时时间 * @param charset 编码格式 * @throws Exception */ public Messenger(String serverIp, int serverPort, int timeout, String charset) throws Exception { this.soc = new Socket(serverIp, serverPort); this.charset = charset; soc.setSoTimeout(timeout); soc.setKeepAlive(true); } /** * 发送报文 * @param reqXML 待发送的报文 * @return */ public String sendReq(String reqXML) { StringBuffer responseStr = new StringBuffer(""); PrintWriter pw = null; BufferedReader sin =null; try { pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(soc.getOutputStream(), charset))); sin = new BufferedReader(new InputStreamReader(soc.getInputStream(), charset)); logger.info("【开始发送报文】"); pw.println(reqXML); pw.flush(); logger.info("【报文发送完毕】"); String str; while((str = sin.readLine()) != null) { responseStr.append(str); } logger.info("【成功读取响应报文】"); } catch(Exception e) { logger.warn("【读取响应报文时出错】" + e); } finally { if (pw != null) { pw.close(); } if (sin != null) { try { sin.close(); } catch (IOException e) {} } } return responseStr.toString(); } //关闭连接 public void close() { if (pw != null) { pw.close(); } if (sin != null) { try { sin.close(); } catch (IOException e) {} } if (soc != null) { try { soc.close(); } catch (IOException e) {} } logger.info("【关闭SOCKET连接】"); } }

手机安卓客户端和电脑服务器进行socket通信,为什么socket不通?

手机安卓客户端和电脑服务器进行socket通信,程序都是java写的,客户端socket函数填的是电脑的外网ip(百度搜出来那个),手机用的是3g信号,但是socket不通。。是ip填错了吗?

Java socket如何连接不在同一个局域网内的服务器和客户端?

我在本机上运行服务器和客户端是可以通信的,把客户端挪到其他局域网内就不行了。 怎么才能实现在不同局域网中也能通信?ip地址写内网还是外网的ip地址?

网络编程Create socket failed!

要求是接收解析ICMPecho请求报文, 用命令行PraseICMP.exe log_file.txt 的形式执行。 ``` // ParsePacket.cpp : 定义控制台应用程序的入口点。 // //#define _WINSOCK_DEPRECATED_NO_WARNINGS #include <stdio.h> #include <winsock2.h> #include <ws2tcpip.h> #pragma comment(lib,"ws2_32.lib") #define _WINSOCK_DEPRECATED_NO_WARNINGS /* ICMP 首部 -- RFC 792 */ struct icmp_hdr { unsigned char type; /* 类型 */ unsigned char code; /* 代码 */ unsigned short checksum; /* 校验和 */ unsigned short id; /* 标识符 */ unsigned short seq; /* 序列号 */ /* 这之后的不是标准 ICMP 首部, 用于记录时间 */ unsigned long timestamp; }; //定义IP头部结构 typedef struct _IP_HEADER { union { BYTE Version; //版本(前4位) BYTE HdrLen; //IP头部长度(后4位) }; BYTE ServiceType; //服务类型 WORD TotalLen; //总长度 WORD ID; //标识 union { WORD Flags; //标志u(前3位) WORD FragOff; //分段偏移(后13位) }; BYTE TimeToLive; //生命期 BYTE Protocol; //协议 WORD HdrChksum; //头校验和 DWORD SrcAddr; //源地址 DWORD DstAddr; //目的地址 BYTE Options; //选项 }IP_HEADER; #define IO_RCVALL _WSAIOW(IOC_VENDOR,1) #define BUFFER_SIZE 65535 //解析IP包的头部长度 void getIHL(BYTE b, BYTE &length) { length = (b & 0x0f) * 4; } //解析ICMP类型 char* geticmptype(char type) { switch (type) { case 0: return "查询报文----应答"; case 3: return "差错报告报文----目的不可达"; case 4: return "控制报文----源抑制"; case 5: return "控制报文----路由重定向"; case 8: return "查询报文----回送请求"; case 10: return "查询报文----路由器请求"; case 11: return "差错报告报文----超时"; case 12: return "差错报告报文----参数出错"; case 13: return "查询报文----时间戳请求"; case 14: return "查询报文----时间戳应答"; case 17: return "查询报文----掩码请求"; case 18: return "查询报文----掩码应答"; case 19: return "差错报告报文----通告"; default: return "Unknown"; } } void ipparse(FILE* file, char* buffer) { int i,j; int iphead; IP_HEADER ip = *(IP_HEADER*)buffer; iphead=(ip.Version & 0x0f)<<2; icmp_hdr icmp_hd = *(icmp_hdr*)(buffer+iphead); fseek(file, 0, SEEK_END); if(ip.Protocol == 1 && icmp_hd.type==8) { printf("\n------ICMP eacho请求报文前50B------\n"); for(i=0;i<5;i++) { for(j=0;j<10;j++) { printf("%x%x ",(unsigned char)buffer[10*i+j]>>4,buffer[10*i+j]&0x0f); } printf("\n"); } fprintf(file, "------解析ICMP eacho请求报文------\n"); //解析IP包的源IP地址 fprintf(file, "SrcAddr: %s\n", inet_ntoa(*(in_addr*)&ip.SrcAddr)); //解析IP包的目的IP地址 fprintf(file, "DstAdrr: %s\n", inet_ntoa(*(in_addr*)&ip.DstAddr)); //解析ICMP类型 fprintf(file, "Type: %s\n",geticmptype(icmp_hd.type)); //解析ICMP代码 fprintf(file, "Code: %d\n",icmp_hd.code); //解析ICMP校验和 fprintf(file, "Sum: 0x%x\n",ntohs((unsigned int)icmp_hd.checksum)); //解析ICMP标识符 fprintf(file, "ID: %d\n",ntohs(icmp_hd.id)); //解析ICMP序列号 fprintf(file, "Seq: %d\n",ntohs(icmp_hd.seq)); } } int main(int argc, char* argv[]) { //检查输入的命令格式 if (argc != 2) { printf("Please input command:ParseICMP.exe log_file.txt\n"); return 0; } //打开输出日志文件 FILE* file; if ((file = fopen(argv[1], "wb+")) == NULL) { printf("Fail to open file %s!", argv[1]); return 0; } //初始化Socket环境 WSADATA wsData; if (WSAStartup(MAKEWORD(2, 2), &wsData) != 0) { printf("WSAStartup failed!"); return 0; } //建立原始Socket SOCKET sock; if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) == INVALID_SOCKET) { printf("Create socket failed!"); return 0; } //设置IP头部操作选项,flag设置为ture BOOL flag = true; if (setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag)) == SOCKET_ERROR) { printf("Setsockopt failed!"); return 0; } //获取本地主机名 char hostName[128]; if (gethostname(hostName, 100) == SOCKET_ERROR) { printf("Gethostbyname failed!"); return 0; } //获取本地主机IP地址 hostent* pHostIP; if ((pHostIP = gethostbyname(hostName)) == NULL) { printf("Gethostbyname failed!"); return 0; } //填充SOCKADDR_IN结构 sockaddr_in addr_in, cliadd; addr_in.sin_addr = *(in_addr*)pHostIP->h_addr_list[0]; addr_in.sin_family = AF_INET; addr_in.sin_port = htons(5050); //把原始Socket绑定到本地网卡 if (bind(sock, (PSOCKADDR)&addr_in, sizeof(addr_in)) == SOCKET_ERROR) { printf("Bind failed!"); return 0; } int ilen = sizeof(cliadd); //设置SOCK_RAW为SIO_RCVALL,接收所有数据包 DWORD dwValue = 1; DWORD dwBufferLen[10]; DWORD dwBufferInLen = 1; DWORD dwBytesReturned = 0; if (WSAIoctl(sock, IO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen), &dwBufferLen, sizeof(dwBufferLen), &dwBytesReturned, NULL, NULL) == SOCKET_ERROR) { printf("Ioctlsocket failed!"); return 0; } //监听经过本机的IP包 char buffer[BUFFER_SIZE]; printf("Listening on local host...\n"); while (true) { // int size = recv(sock, buffer, BUFFER_SIZE, 0); int size = recvfrom(sock, buffer, BUFFER_SIZE, 0 , (struct sockaddr*)&cliadd, &ilen); if (size > 0) { ipparse(stdout, buffer); //ipparse(file, buffer); } } fclose(file); return 0; } ```

UDP端口扫描程序使用socket php

<div class="post-text" itemprop="text"> <p>ok, it's easy to code TCP port scanner by using socket but i don't know why it's hard to be the same for UDP</p> <p>I just want to check if a specific UDP port (say port 500) is open or not.</p> <p>Here is my code:</p> <pre><code>$ip = '103.12.9.209'; $port = '500'; $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $result = socket_connect($socket, $ip, $port); if ($result) { echo "Port is on"; } else { echo "Port is off"; } socket_close($socket); </code></pre> <p>The problem is it always return true (port is on) even it's off.</p> <p>What is the problem? any idea please?</p> <p>Thanks.</p> </div>

Java的Socket编程内网里测试完全正常,当使用花生壳软件后服务器就无法收发数据,并且抛出异常

求大神解决问题,我的程序在内网的两台主机测试时完全没问题的,但是希望在不同的内网测试,用了花生壳得到域名后,服务器主机IP做了端口映射,一切正常,但是客户端也可以建立连接,当连接后,服务器那边就会报错,原因是服务器接受数据时抛出异常,发送紧急数据报给客户端时也发生异常,两个异常都在服务器发生,客户端正常,而且并无断开。我的防火墙关了也不行!求大神解决!!!![图片说明](https://img-ask.csdn.net/upload/201703/30/1490854527_376190.png)![图片说明](https://img-ask.csdn.net/upload/201703/30/1490854536_472846.png)

Jpcap编程获取网络IP数据包

在ubuntu下用java基于jpcap写了一个获取网络数据IP数据包的程序,但是在eclipse中运行的时候报错如下: java.io.IOException: wlp4s0: You don't have permission to capture on that device (socket: 不允许的操作) at jpcap.JpcapCaptor.openDevice(Unknown Source) at DispalyNetPacket.main(DispalyNetPacket.java:19) 启动失败: java.io.IOException: wlp4s0: You don't have permission to capture on that device (socket: 不允许的操作) 求大神解释啊啊

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

MIPS单周期CPU-组成原理实验-华中科技大学

使用logisim布线完成的MIPS单周期CPU,可支持28条指令。跑马灯的代码已经装入了寄存器,可以直接开启时钟运行。

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

基于QT和OpenCV的五子棋实现源码

一个简单的五子棋应用,基于QT和OpenCV的实现源码,通过相邻棋子判断是否获胜,不包含人工智能算法,适合新手入门

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

JAVA初级工程师面试36问(完结)

第三十一问: 说一下线程中sleep()和wait()区别? 1 . sleep()是让正在执行的线程主动让出CPU,当时间到了,在回到自己的线程让程序运行。但是它并没有释放同步资源锁只是让出。 2.wait()是让当前线程暂时退让出同步资源锁,让其他线程来获取到这个同步资源在调用notify()方法,才会让其解除wait状态,再次参与抢资源。 3. sleep()方法可以在任何地方使用,而wait()只能在同步方法或同步块使用。 ...

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

智鼎(附答案).zip

并不是完整题库,但是有智鼎在线2019年9、10、11三个月的试题,有十七套以上题目,普通的网申行测题足以对付,可以在做题时自己总结一些规律,都不是很难

Visual Assist X 破解补丁

vs a's'sixt插件 支持vs2008-vs2019 亲测可以破解,希望可以帮助到大家

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

JavaWEB商城项目(包括数据库)

功能描述:包括用户的登录注册,以及个人资料的修改.商品的分类展示,详情,加入购物车,生成订单,到银行支付等!另外还有收货地址的和我的收藏等常用操作.环境(JDK 1.7 ,mysql 5.5,Ecli

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

一学即懂的计算机视觉(第一季)

图像处理和计算机视觉的课程大家已经看过很多,但总有“听不透”,“用不了”的感觉。课程致力于创建人人都能听的懂的计算机视觉,通过生动、细腻的讲解配合实战演练,让学生真正学懂、用会。 【超实用课程内容】 课程内容分为三篇,包括视觉系统构成,图像处理基础,特征提取与描述,运动跟踪,位姿估计,三维重构等内容。课程理论与实战结合,注重教学内容的可视化和工程实践,为人工智能视觉研发及算法工程师等相关高薪职位就业打下坚实基础。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/26281 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,但是大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/26281,点击右下方课程资料、代码、课件等打包下载

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐