小编Ale*_*rus的帖子

在Go中写入客户端UDP套接字

我正在寻找一个很好的解决方案,用于使用Go语言的UDP套接字进行客户端/服务器通信.

我在互联网上找到的例子告诉我如何将数据发送到服务器,但他们没有教导如何将它们发送回客户端.

为了演示,我的程序执行以下操作:

我的客户端程序在4444端口上创建一个套接字,如下所示:

con, err := net.Dial("udp", "127.0.0.1:4444")
Run Code Online (Sandbox Code Playgroud)

我发送了一个字符串和本地地址到服务器,因此它可以打印字符串并发送OK消息.我正在使用gob:

enc := gob.NewEncoder(con)
enc.Encode(Data{"test", con.LocalAddr().String()})
Run Code Online (Sandbox Code Playgroud)

我的Data结构如下所示:

type Data struct{
    Msg string
    Addr string
}
Run Code Online (Sandbox Code Playgroud)

我的服务器侦听4444端口并正确解码Gob,但是如何发送OK消息?我正在使用客户端地址(在服务器.go文件上):

con, err := net.Dial("udp", data.Addr)
Run Code Online (Sandbox Code Playgroud)

然后,我得到一个错误代码:

write udp 127.0.0.1:35290: connection refused
Run Code Online (Sandbox Code Playgroud)

当客户端尝试连接到服务器的端口4444时,客户端会创建一个带有随机数的端口(在本例中为35290),以便它们可以进行通信.我知道我不应该将客户端的地址传递给服务器,但是conn.RemoteAddress()不起作用.发现客户地址的解决方案将是最受欢迎的.

Obs.:我知道有ReadFromUDP,所以我可以阅读包.我应该阅读它,发现客户的地址,并将数据发送到Gob,以便它可以解码吗?

sockets udp go gob

11
推荐指数
1
解决办法
2万
查看次数

如何在JQuery Flot上复制Y轴

我能够使用JQuery Flot,这是一个非常好的工具.但是,我找不到适合我的问题的好解决方案.

我想复制Y轴,所以我可以在左边显示1,在右边显示1,所以用户在比较图表最右边的数据时,不必滚动到图表的最左边.我假设他们将通过智能手机访问它.

JQuery Flot允许多个轴,但是对于每个轴,我需要一组不同的数据,如下例所示:http: //people.iola.dk/olau/flot/examples/multiple-axes.html

但我不想复制数据.我不能只是'告诉'Flot使用同一组数据复制yaxis吗?

一只忙碌的猫

javascript jquery flot

7
推荐指数
1
解决办法
698
查看次数

C++创建一个头来解决循环依赖是一个好主意吗?

我有一个开始变大的C++项目.我面临的情况是我有很多循环依赖的类.假设我有类A,B,C,D.为了解决这个问题,我创建了一个名为circular_dep.h的头文件

这个文件的内容是指向类的指针:

class A;
class B;
class C;
class D;
Run Code Online (Sandbox Code Playgroud)

这个标题现在包含在我所有类的标题中.这样,当我有循环依赖时,编译器停止抱怨.但是,每当我向项目添加一个新类时,我都必须将它添加到circular_dep.h中

我找不到更简单的方法来做到这一点,所以对我来说这是迄今为止最好的解决方案.我的问题是:适用于可能面临循环依赖问题的项目是否是一个好主意?或者这是一个糟糕的设计/糟糕或危险的做法?

c++ circular-dependency header-files

5
推荐指数
1
解决办法
273
查看次数

离子2 - 表

我想像使用Bootstrap一样使用离子构建表格.

我希望我的桌子看起来像这个链接的例子.

因此,我在Ionic的Docs中找不到的功能是"表格标题".我找到的所有示例都不考虑表头.

此外,在Ionic中是否有一种原生方式可以使表格行像Bootstrap的"上下文表格布局"一样着色并具有响应性,如此链接中的 "响应表格布局"示例?

grid-layout ionic-framework ionic2 ionic3

5
推荐指数
1
解决办法
2万
查看次数

Rails 4、Capistrano 3 和 Dotenv - 如何使用服务器端 .env 文件进行部署

我有一个带有 Dotenv gem 的 Rails 4 应用程序,可以从文件中读取变量.env

我设置了一些变量,以便为我的 rails 应用程序设置一个除“root”以外的 mysql 用户,例如:

MYSQL_ROOT_USER='rootuser'
MYSQL_ROOT_PASSWORD='rootpassword'
APP_DATABASE_USER='mydbuser'
APP_DATABASE_PASSWORD='userpassword'
Run Code Online (Sandbox Code Playgroud)

我还创建了一个 bash 脚本来在下面创建 mysql 用户 scripts/database_setup.bash

#!/bin/bash
source ../.env
# creates the user
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "CREATE USER '${APP_DATABASE_USER}'@'localhost' IDENTIFIED BY '${APP_DATABASE_PASSWORD}';"
# grants permission
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON \`myapp\_%\`.* TO '${APP_DATABASE_USER}'@'localhost';"
Run Code Online (Sandbox Code Playgroud)

在服务器端,Capistrano 部署到`/home/myuser/apps/myapp/

我有三个问题:

  1. 放置服务器端.env文件的最佳位置在哪里?现在我把它放在/home/myuser/apps/myapp/目录中。
  2. 如何告诉 Capistrano 将其复制到 Rails 根目录?
  3. 如何在运行迁移之前告诉 Capistrano 执行我的 bash 脚本?

ruby-on-rails capistrano3

3
推荐指数
2
解决办法
1691
查看次数

RSpec - 如何获得更好的错误信息?

我习惯了 PHPUnit,所以我发现 RSpec 在显示哪里出错、哪里出错以及为什么出错时表现不佳。

例如,在 PHPUnit 中,我可以在引发异常时获取堆栈跟踪(即使在 RSpec 中使用 -b 选项,我能得到的只是 RSpec 异常的堆栈跟踪,而不是 Rails 的)

此外,当发生某些错误时,它会显示ACTUAL值和EXPECTED值。

我想在 RSpec 中实现的这两个功能。获取包含堆栈跟踪的详细错误消息,以防出现 Ruby 或 Rails 异常,并了解实际值是多少。

关于如何实现这一点的任何想法?

ruby rspec ruby-on-rails

2
推荐指数
1
解决办法
1028
查看次数

Rails 4 - 如何提供视频?

我正在使用Rails 4作为我的Web应用程序,我正在使用VideoJS来显示它,例如:

<video id="video1" class="video-js" controls preload="auto" width="640" height="264" poster="{{pCtrl.video.poster}}"  src="<%= @video.file %>">
        <source src="<%= @video.file %>" type="video/<%= @video.file.file.filename.last(3) %>">
</video>
Run Code Online (Sandbox Code Playgroud)

我总是从VideoJS收到此错误:

VIDEOJS: ERROR: (CODE:3 MEDIA_ERR_DECODE) The video playback was aborted due to a corruption problem or because the video used features your browser did not support.
Run Code Online (Sandbox Code Playgroud)

当我打开Chrome的开发工具时,我看到视频(340Mb .mp4文件)的下载状态为206(部分内容),仅为2.8 Mb.

我认为这是VideoJS的问题,但后来我尝试直接访问,如" http:// localhost:3000/uploads/video/file/glrbfmso1449450792.mp4 "

该视频将播放几秒钟然后冻结,除非我刷新页面,否则它将无法播放.我认为它只能播放2.8 Mb.所以我认为它与WEBrick有关.

问题不在于视频文件,因为它在VLC上正常播放,当我使用Glassfish(用Java编程)时.

那么我的问题是:我应该在Rails或WEBrick中配置一些东西吗?我应该编辑哪些设置?或者这是我经历的异常?

video ruby-on-rails video-streaming html5-video ruby-on-rails-4

0
推荐指数
1
解决办法
1736
查看次数