Стоит ли использовать сеть фейстеля для передачи данных по сети?
Написанный на коленке алгоритм для передачи шифротекста обычным tcp/ip сокетом.
Написанный на коленке алгоритм для передачи шифротекста обычным tcp/ip сокетом.
На наклейке роутера 150 мбит, в speedtest выдает 30-40 мбит в обе стороны, тариф сейчас ночью 100 мбит, по витухе к этому роутеру дает под сотню, 2.4 Ггц, 802.11b/g/n
В проекте на пк использую событие mouseclick, а как будет тап пальцем в андроид?
Чтобы поменьше заморочек
Основной класс
public class Cars implements GLEventListener {
static Scene1 scene;
@Override
public void init(GLAutoDrawable drawable) {
...
try {
scene.LoadDrum(drawable);
} catch (IOException ex) {
Logger.getLogger(Cars.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
scene = new Scene1();
scene.Scene();
Cars r = new Cars();
...
}
}
public class Scene1 {
class Image
{
int IndexTexture;
String Name;
int number;
}
static final int CountTexture = 1;
int Scene()
{
image = new Image[CountTexture];
CountIndexTexture = 0;
vectordrum = new Vector<String>();
return 0;
}
int LoadDrum(GLAutoDrawable drawable) throws IOException
{
...
CountIndexTexture++;
image[CountIndexTexture - 1].Name = "auto1";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
...
}
}
Переписываю проект потихоньку рантайм ошибки не пойму Cars.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cars;
/**
*
* @author Евгений
*/
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.DisplayMode;
import java.io.IOException;
/*
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
import javax.media.opengl.glu.GLU;
*/
import com.jogamp.opengl.*;
import com.jogamp.opengl.awt.GLCanvas;
import com.jogamp.opengl.glu.*;
import javax.swing.JFrame;
import com.jogamp.opengl.util.FPSAnimator;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Cars implements GLEventListener {
public static DisplayMode dm, dm_old;
private GLU glu = new GLU();
private float xrot,yrot,zrot;
private int texture;
static Scene1 scene;
static Vector<String> drum;
@Override
public void display(GLAutoDrawable drawable) {
final GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity(); // Reset The View
gl.glTranslatef(0f, 0f, -5.0f);
scene.ShowDrum(5, 6, drum, gl);
gl.glFlush();
}
@Override
public void dispose(GLAutoDrawable drawable) {
// method body
}
@Override
public void init(GLAutoDrawable drawable) {
final GL2 gl = drawable.getGL().getGL2();
gl.glShadeModel(GL2.GL_SMOOTH);
gl.glClearColor(0f, 0f, 0f, 0f);
gl.glClearDepth(1.0f);
gl.glEnable(GL2.GL_DEPTH_TEST);
gl.glDepthFunc(GL2.GL_LEQUAL);
gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);
gl.glEnable(GL2.GL_TEXTURE_2D);
try {
scene.LoadDrum(gl);
} catch (IOException ex) {
Logger.getLogger(Cars.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
// TODO Auto-generated method stub
final GL2 gl = drawable.getGL().getGL2();
if(height <= 0)
height = 1;
final float h = (float) width / (float) height;
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL2.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(45.0f, h, 1.0, 20.0);
gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glLoadIdentity();
}
public static void main(String[] args) {
scene = new Scene1();
scene.Scene();
drum = new Vector<String>();
for(int i=0;i<30;i++)
drum.add("auto1");
// TODO Auto-generated method stub
final GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);
// The canvas
final GLCanvas glcanvas = new GLCanvas(capabilities);
Cars r = new Cars();
glcanvas.addGLEventListener(r);
glcanvas.setSize(400, 400);
final JFrame frame = new JFrame (" Textured Cube");
frame.getContentPane().add(glcanvas);
frame.setSize(frame.getContentPane().getPreferredSize());
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
glcanvas.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
System.out.println(e.getX() + " " + e.getY());
}
});
final FPSAnimator animator = new FPSAnimator(glcanvas, 300, true);
animator.start();
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cars;
import com.jogamp.opengl.GL2;
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.util.texture.Texture;
import com.jogamp.opengl.util.texture.TextureIO;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
/**
*
* @author Евгений
*/
public class Scene1 {
class Image
{
int IndexTexture;
String Name;
int number;
}
static final int CountDrum = 5;
static final int CountTextureOnDrum = 6;
static final int CountTexture = 1;
public Vector<String> vectordrum;
int CountIndexTexture;
Image[] image;
File im;
Texture t;
float xl, xr, yd, yu;
int Scene()
{
image = new Image[CountTexture];
CountIndexTexture = 0;
vectordrum = new Vector<String>();
return 0;
}
int LoadDrum(final GL2 gl) throws IOException
{
//if (iter == 0)
{
vectordrum.add("auto1");//1
CountIndexTexture++;
im = new File("content\\drum\\auto1.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto1";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
/*
//if (iter == 1)
{
vectordrum.add("auto2");//2
im = new File("content\\drum\\auto2.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto2";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 2)
{
vectordrum.add("auto3");//3
im = new File("content\\drum\\auto3.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto3";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 3)
{
vectordrum.add("auto4");//4
im = new File("content\\drum\\auto4.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto4";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 4)
{
vectordrum.add("auto5");//5
im = new File("content\\drum\\auto5.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto5";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 15)
{
vectordrum.add("bonus");//16
im = new File("content\\drum\\bonus.png");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "bonus";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 16)
{
vectordrum.add("wild");//17
im = new File("content\\drum\\wild.jpg");
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "wild";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
*/
//if (iter > 15)
return 0;
//else
// return 1;
}
int FindTexture(String name)
{
int result = -1;
for (int i = 0; i<CountTexture; i++)
{
if (image[i].Name.equals(name))
{
result = image[i].number;
break;
}
}
return result;
}
void ShowDrum(int countdrums, int counttextureondrums,Vector<String> drum,final GL2 gl)
{
int k = -1;
for (int i = 0; i<countdrums; i++)
{
gl.glPushMatrix();
//glRotatef(rotate[i], 1, 0, 0);
for (int j = 0; j < counttextureondrums; j++)
{
gl.glBindTexture(GL2.GL_TEXTURE_2D, image[FindTexture(drum.get(++k))].IndexTexture);
EnableTexture(i, j,gl);
}
gl.glPopMatrix();
}
}
void EnableTexture(int n, int m,final GL2 gl)
{
if(n == 0)
{
if(m == 0){
xl = -0.78f;//08
xr = -0.48f;
yd = 0.3f;
yu = 0.68f;//09
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = -0.78f;
xr = -0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = -0.78f;
xr = -0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.78f;
xr = -0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.78f;
xr = -0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.78f;
xr = -0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front up
//front middle
if(n == 1)
{
if (m == 0) {
xl = -0.48f;
xr = -0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if(m == 1){
xl = -0.48f;
xr = -0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = -0.48f;
xr = -0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.48f;
xr = -0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.48f;
xr = -0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.48f;
xr = -0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front middle
//front down
if(n == 2)
{
if (m == 0) {
xl = -0.16f;
xr = 0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = -0.16f;
xr = 0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if(m == 2){
xl = -0.16f;
xr = 0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.16f;
xr = 0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.16f;
xr = 0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.16f;
xr = 0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front down
//back up
if(n == 3)
{
if (m == 0) {
xl = 0.16f;
xr = 0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = 0.16f;
xr = 0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = 0.16f;
xr = 0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if(m == 3){
xl = 0.16f;
xr = 0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = 0.16f;
xr = 0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = 0.16f;
xr = 0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//back up
//back middle
if(n == 4)
{
if (m == 0) {
xl = 0.48f;
xr = 0.78f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = 0.48f;
xr = 0.78f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = 0.48f;
xr = 0.78f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = 0.48f;
xr = 0.78f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if(m == 4){
xl = 0.48f;
xr = 0.78f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = 0.48f;
xr = 0.78f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//back middle
}
void EnablePolygonFrontUp(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, 0.0f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, .6f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, .6f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, 0.0f);
gl.glEnd();
}
void EnablePolygonFrontMiddle(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, .6f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, .6f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, .6f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, .6f);
gl.glEnd();
}
void EnablePolygonFrontDown(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, .6f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, 0.0f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, 0.0f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, .6f);
gl.glEnd();
}
void EnablePolygonBackUp(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, -.6f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, 0.0f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, 0.0f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, -.6f);
gl.glEnd();
}
void EnablePolygonBackMiddle(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, -.6f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, -.6f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, -.6f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, -.6f);
gl.glEnd();
}
void EnablePolygonBackDown(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, 0.0f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, -.6f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, -.6f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, 0.0f);
gl.glEnd();
}
}
Есть классы на с++, в ручную их переводить не сильно охота
Использую такой путь - не считывает:
public class AppletMouseListener//блок обработки событий
implements MouseListener {
/* реализация всех пяти методов интерфейса MouseListener */
public void mouseClicked(MouseEvent me) {
int x = me.getX();
int y = me.getY();
System.out.println("x="+x);
System.out.println("y="+y);
}
@Override
public void mousePressed(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseReleased(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
public void init()
{
addMouseListener(new AppletMouseListener() );
}
Последняя jdk установлена, ее выпилили что ли из jdk?
Описание ошибки: can’t open data connection for transfer of
Передаю изображение с сервера на клиент, но черный экран. Клиент
FILE* f = fopen("Screen.tga", "wb");
if (!f) {
}
unsigned char tgaHeader[12] = { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
unsigned char header[6];
n = read(sockfd, (char*)tgaHeader, sizeof(tgaHeader));
fwrite((unsigned char*)tgaHeader, sizeof(tgaHeader), 1, f);
n = read(sockfd, (char*)header, sizeof(header));
fwrite((unsigned char*)header, sizeof(header), 1, f);
// Записываем данные изображения:
bzero(buffer, buflen);
n = read(sockfd, buffer, buflen);
unsigned long j = (unsigned long)atol(buffer);
std::cout << buffer << std::endl;
std::cout<<'\n' << "j=" << j << std::endl;
bzero(buffer, buflen);
n = read(sockfd, buffer, j);
fwrite((unsigned char*)buffer,j, 1, f);
bzero(buffer, buflen);
fclose(f);
FILE*sFile =fopen("Screen.tga", "wb");
if (!sFile) {
}
header[0] = ScreenWidth % 256;
header[1] = ScreenWidth / 256;
header[2] = ScreenHeight % 256;
header[3] = ScreenHeight / 256;
header[4] = BMI.bmiHeader.biBitCount;
header[5] = 0;
fwrite(tgaHeader, sizeof(tgaHeader), 1, sFile);
n = write(newsockfd[current], (char*)tgaHeader, sizeof(tgaHeader));
fwrite(header, sizeof(header), 1, sFile);
n = write(newsockfd[current], (char*)header, sizeof(header));
fwrite(ImageBuffer, BMI.bmiHeader.biSizeImage, 1, sFile);
char* s = new char[100];
ultoa(BMI.bmiHeader.biSizeImage, s,100);
for (int i = 0; i < 100; i++)
((type*)args)[current].lalk->buffer[i] = s[i];
n = write(newsockfd[current], ((type*)args)[current].lalk->buffer, buflen);
n = write(newsockfd[current], (char*)ImageBuffer, BMI.bmiHeader.biSizeImage);
fclose(sFile);
Использую такой код,но он не дочитавается до конца похоже, обязательно нужен буфер из чаров
FILE *f = fopen("Screen.tga", "r");
char* buffer =new char[10240000];
if (f != NULL)
{
int countfile = 0;
while ((buffer[countfile++] = getc(f)) != EOF)
;
fclose(f);
}
Пытаюсь переслать команду на сервер, пишет ошибка чтения - нет ошибки? Сервер:
//g++ 7.4.0
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
void error(const char* msg)
{
perror(msg);
std::cin.ignore();
exit(1);
}
int main()
{
int sockfd, newsockfd;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
struct sockaddr_in serv_addr,cli_addr;
bzero((char*)&serv_addr, sizeof(serv_addr));
bzero((char*)&cli_addr, sizeof(cli_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
int port = 30000;
serv_addr.sin_port = htons(port);
if (bind(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0)
error("ERROR on binding");
if (listen(sockfd, 10) < 0)
error("ERROR listen");
socklen_t clilen = sizeof(cli_addr);
newsockfd = accept(sockfd, (struct sockaddr*)&cli_addr, &clilen);
if (newsockfd < 0)
{
error("ERROR on accept");
}
int buflen = 9;
char*buffer = new char[buflen];
bzero(buffer, buflen);
int n;
n = read(newsockfd, buffer, buflen);
if (n < 0)
error("ERROR reading from socket");
system(buffer);
close(newsockfd);
close(sockfd);
delete buffer;
return 0;
std::cin.ignore();
}
//g++ 7.4.0
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
void error(const char* msg)
{
perror(msg);
std::cin.ignore();
exit(1);
}
int main()
{
int sockfd;
struct hostent*server = gethostbyname("localhost");
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
struct sockaddr_in serv_addr, cli_addr;
bzero((char*)&serv_addr, sizeof(serv_addr));
bzero((char*)&cli_addr, sizeof(cli_addr));
serv_addr.sin_family = AF_INET;
const char*address="127.0.0.1";
serv_addr.sin_addr.s_addr = inet_addr(address);
int port = 30000;
serv_addr.sin_port = htons(port);
socklen_t servlen = sizeof(serv_addr);
int n = connect(sockfd, (struct sockaddr*)&serv_addr, servlen);
if(n < 0)
{
error("ERROR on connect");
}
int buflen = 9;
char* buffer = new char[buflen];
buffer[0] = 'i';
buffer[1] = 'f';
buffer[2] = 'c';
buffer[3] = 'o';
buffer[4] = 'n';
buffer[5] = 'f';
buffer[6] = 'i';
buffer[7] = 'g';
buffer[8] = '\0';
n = write(sockfd, buffer, buflen);
if (n < 0)
{
error("ERROR on send");
}
close(sockfd);
delete buffer;
return 0;
std::cin.ignore();
}
JFrame frame = new JFrame();
frame.setLocation(0, 0);
frame.setSize(300,300);
JButton button = new JButton("close");
button.setSize(100,50);
//Dimension dim = new Dimension();
//dim.width = 100;
//dim.height = 50;
//button.setMaximumSize(dim);
button.setBounds(100, 150, 100, 50);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
frame.dispose();
}
});
JPanel panel = new JPanel();
panel.setSize(frame.getSize());
panel.add(button);
//button.setLocation(100, 250);
frame.add(panel);
JFrame frame = new JFrame();
frame.setLocation(0, 0);
frame.setSize(300,300);
JButton button = new JButton();
button.setSize(100,50);
button.setLocation(100, 150);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
frame.dispose();
}
});
frame.add(button);
frame.show();
Вообщем я провалился на собеседованиях по с/с++ и Java по сути им мало одного языка нужны всякие qt или spring и разные программулины вроде cmake и maven либо математика или веб. Сейчас я не в силах кодить по 8 часов на 5 дней. Да и пришлось уехать из родного города. У себя есть только 1с, если php, то придется тратиться на жилье. Что выбрать? П. С. На деле я мечтанул неправильно выбрав Си подобные языки не глянув вакансии своего города когда учился в вузе
Глючит экран, сам нажимает куда хочет, когда я нажимаю пальцем иногда, думаю дело в кривой операционке android 7.1, можно ли накатить любую ось то какую? Никогда не делал такого вот и спрашиваю
Вообщем прошло время когда я горел желанием учить все подряд вроде линукса, сетей и программирования что системное что веб. Сейчас стоит вопрос о поднятии уровня заработной платы и смены работы (в перспективе) просто банально хватает от получки до получки, за душой ни кола ни двора, а возраст уже начинает брать свое под 30. Как бы можно вечно сидеть так, но это будет печально в плане пирамиды маслоу, охота реализоваться в жизни а не просто жить на первых двух-трех ступенях её. Пробовал начать читать лит-ру, инструкции и документацию, но это все вводит меня в уныние и отторжение к тексту который я читаю. Как быть?
Я тут недавно размещал свой код для оценки, решил ТЗ для одной компании «Рога и копыта», говорят 12 человек тоже решило это, возможно я кого-то смог привлечь тоже на этих ресурсах тостере и лоре, говорят надо решать следущее, похоже за бесплатно, решать ли?
Проц - celeron g 4900 Мать - asus H110M-C В ремонте сказали что проц lga 1151v2 , а мать lga 1151v1, серьезно? Подскажите процессор под эту мать бюджетный для офиса
| ← назад | следующие → |